我打算使用基於DIV的佈局而不是基於表格來減少標記數量並加快頁面加載速度,但是我發現它太複雜了,不是CSS大師。我使用以下CSS類來模擬包含一列標籤和一列文本框的表格行。如何防止DIV滑過對方
.FormItem
{
margin-left: auto;
margin-right: auto;
width: 604px;
min-height: 36px;
}
.ItemLabel
{
float: left;
width: 120px;
padding: 3px 1px 1px 1px;
text-align: right;
}
.ItemTextBox
{
float: right;
width: 480px;
padding: 1px 1px 1px 1px;
text-align: left;
}
,
<div class="FormItem">
<div class="ItemLabel">
<asp:Label ID="lblName" runat="server" Text="Name :"></asp:Label>
</div>
<div class="ItemTextBox">
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<p><span>User Name</span></p>
</div>
</div>
<div class="FormItem">
<div class="ItemLabel">
<asp:Label ID="lblComments" runat="server" Text="Comments :"></asp:Label>
</div>
<div class="ItemTextBox">
<asp:TextBox ID="txtComments" runat="server"></asp:TextBox>
<p><span>(optional)Comments</span></p>
</div>
</div>
這些樣式正常工作,如果的ItemData的DIV的高度是小於或等於的FormItem的DIV最小高度。如果ItemData DIVs的高度超過FormItem的高度,則ItemText DIV將開始滑過FormItem DIVs並且ItemText和ItemData不再對齊。例如下面的標記...
<div class="FormItem">
<div class="ItemLabel">
<asp:Label ID="lblName" runat="server" Text="Name :"></asp:Label>
</div>
<div class="ItemTextBox">
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<p><span>User Name</span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div>
</div>
<div class="FormLabel">
<div class="ItemText">
<asp:Label ID="lblComments" runat="server" Text="Comments :"></asp:Label>
</div>
<div class="ItemTextBox">
<asp:TextBox ID="txtComments" runat="server"></asp:TextBox>
<p><span>(optional)Comments</span></p>
</div>
</div>
我已經嘗試了幾個CSS屬性,如;位置,浮動,清除...但我無法糾正問題。我將不勝感激任何幫助。
恕我直言,在佈置表格時沒有任何問題。 – RoToRa 2010-05-06 13:31:37