Лично я редко использую плавающую технику, хотя она очень распространена. Причина: это очень хрупко для более сложных ситуаций.
Я почти всегда так делаю:
<form ...>
<p>
<label for="id1">Label 1</label>
<input id="id1" ... />
</p>
<p>
<label for="id2">Label 2</label>
<input id="id2" ... />
</p>
</form>
И CSS:
p {
position: relative;
}
label {
position: absolute;
width: 150px;
left: 0;
top: Xpx /* x to align nicely with the baseline of the text in the input */
}
input {
margin-left: 160px;
}
Очень редко возникает проблема с многострочными метками, которые переполняют
.
Чтобы он работал в IE6 и, возможно, IE7, вам нужно добавить что-то, чтобы получить
hasLayout. зум: 1; делает трюк, или указание ширины.