Я собираюсь использовать макет на основе DIV вместо таблицы, чтобы уменьшить количество разметки и ускорить загрузку страницы, однако я счел это слишком сложным, m не гуру CSS. Я использую следующий класс CSS для имитации строк таблицы, содержащей один столбец для метки и один для текстового поля.Как предотвратить перемещение DIVs друг от друга
.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 DIVs меньше или равна FormItem DIVs мин-высота. Если высота элемента ItemData DIV больше, чем высота FormItem, то ItemText DIVs начнет перемещаться по элементам 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, таких как; положение, float, clear ... но я не могу исправить проблему. Я буду признателен за любую помощь.
ИМХО, нет ничего плохого в оформлении формы со столом. – RoToRa