2011-11-30 42 views
11

Tôi đã rối tung xung quanh với asp.net một lúc và luôn luôn có vấn đề sắp xếp các đối tượng với các độ cao khác nhau trên cùng một hàng. Ví dụ, trong trường hợp này, tôi có một nhãn tìm kiếm, một trường văn bản, sau đó là một nút hình ảnh. "Cách thích hợp" để có được ba mục này để căn chỉnh đúng cách là gì?Làm cách nào để căn chỉnh đối tượng theo chiều dọc trong ASP.NET?

mã hiện tại của tôi:

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
    </asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <asp:Panel VerticalAlign="Center" runat="server"> 
    <asp:Label ID="Label1" runat="server" Font-Size="X-Large" Text="Search Tests:"></asp:Label> 
    <asp:TextBox ID="searchTextBox" runat="server" Font-Size="X-Large" 
     Height="30px" style="margin-left: 13px; margin-top: 0px" Width="219px"></asp:TextBox> 
    <asp:ImageButton ID="ImageButton2" runat="server" Height="45px" 
     ImageUrl="~/Images/SearchButton.PNG" style="margin-left: 18px; margin-top: 0px" 
     Width="95px" /> 
    </asp:Panel> 
</asp:Content> 
+0

ASP và ASP.NET không phải là những điều tương tự. Bạn nên có thói quen sử dụng hai thuật ngữ một cách chính xác hoặc bạn có thể không nhận được câu trả lời mà bạn mong đợi. –

+0

Câu hỏi này có rất ít để làm với ASP.NET. Nó khá là một câu hỏi HTML. Tìm hiểu cách thực hiện nó với HTML thuần túy và bạn sẽ có câu trả lời. –

+0

@Abe Tôi xin lỗi. Tôi sẽ ghi nhớ điều này khi đăng trong tương lai. Cảm ơn bạn đã khắc phục sự cố cho tôi lần này. – PFranchise

Trả lời

7

Cách đơn giản nhất là sử dụng CSS hoặc bảng. Tôi đặt một div xung quanh với một chiều cao và thẳng đứng thẳng hàng đầu. CSS Reference

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <asp:Panel ID="Panel1" VerticalAlign="Center" runat="server"> 
     <div style="height: 40px; vertical-align: top"> 
      <div style="padding-top: 10px; float:left;"> 
       <asp:Label ID="Label1" runat="server" Font-Size="X-Large" Text="Search Tests:"></asp:Label> 
      </div> 
      <div style="padding-top: 5px; float:left;"> 
       <asp:TextBox ID="searchTextBox" runat="server" Font-Size="X-Large" Height="30px" 
        Style="margin-left: 13px; margin-top: 0px" Width="219px"></asp:TextBox> 
      </div> 
      <div style="padding-top: 5px; float:left;"> 
       <asp:ImageButton ID="ImageButton2" runat="server" Height="45px" ImageUrl="~/Images/SearchButton.PNG" 
        Style="margin-left: 18px; margin-top: 0px" Width="95px" /> 
      </div> 
     </div> 
    </asp:Panel> 
</asp:Content> 
+0

Tôi đánh giá rất cao phản hồi. Tuy nhiên, tất cả ba mục vẫn đang căn chỉnh dựa trên đáy thẳng đứng của chúng. Có cách nào để làm cho giữa ba đối tượng được căn chỉnh không? Tôi xin lỗi nếu mong muốn này không rõ ràng trong câu hỏi của tôi – PFranchise

+0

Tôi đã sửa đổi mã để phản ánh điều này: Bạn sẽ cần phải đặt từng mã vào thẻ div của chính chúng và điều chỉnh phần đệm để làm cho chúng xếp hàng. Vấn đề duy nhất với đó là trình duyệt chéo họ có thể không phải tất cả các dòng lên hoàn hảo, họ phải rất gần nhưng không chính xác giống nhau trên mỗi trình duyệt. – Robert

+0

Được rồi. Cảm ơn nhiều. Có phải đó là cách hầu hết các trang web xử lý loại điều này? Tôi cảm thấy muốn sắp xếp các đối tượng như vậy sẽ là một mối quan tâm chung. – PFranchise

0

tôi đã có cùng một vấn đề và tôi nghĩ rằng việc sử dụng một bảng hoặc một div chỉ để gắn kết các Textbox đó là quá mức.

tôi giải quyết đơn giản:

<asp:TextBox ID="TextBox2" runat="server" Width="60px"></asp:TextBox>&nbsp; 
<asp:ImageButton ID="ImageButton1" runat="server" 
       ImageUrl="~/imatges/imgNou.png" 
       CssClass="style3" ImageAlign="AbsBottom" /> 

Và thêm margin-top trong thiết kế, IDE thêm:

.style3 
{ 
    margin-top: 6px; 
} 
Các vấn đề liên quan