В комментариях к предыдущей заметке было справедливо замечено, что не был рассмотрен вариант, когда label’ы располагаются слева от элементов. Исправляем упущение.
Для достижения результата я совместил предыдущую технику и definition list’ы. Код выглядит следующим образом:
fieldset dl dt,
fieldset dl dd {
margin:.4em 0;
}
fieldset dl dt {clear:left;}
fieldset dl label {
float:left;
width:30%;
margin-right:1em;
}
fieldset dl input,
fieldset dl select {
width:50%;
}
Не буду приводить html-разметку, она есть в работающем примере. Скажу только, что данный метод не работает в IE 5.0. В нем наши label’ы все так же находятся на строку выше.
Также не работает задуманное мною поведение при большом label’е. В несколько другой разметке поведение весьма корректное, а вот в этой, “оптимизированной”, мне пока не удается его добиться. Видимо, это не последняя заметка по теме форм :)
Андрей Кузьмин // 16 марта 2006 в 20:27
селект по ширине на два пикселя меньше инпутов.
Flack // 16 марта 2006 в 21:10
То-то я не заметил..
Андрей Кузьмин // 19 марта 2006 в 09:08
у меня глаз придрочен, я даже 1пх сходу замечаю =)
Fedos // 23 августа 2006 в 17:51
dieldset – опечатка
Flack // 23 августа 2006 в 17:54
Fedos, спасибо, исправил.
CiDS // 25 декабря 2006 в 13:26
В прошлой версии все было в процентах, а сейчас – нет =(
Gansik // 28 марта 2007 в 21:01
Sorry, не заметил что тема форм получила развитие, и откомментировал старый пост. Вот мой взгляд на ту же проблему http://gansik.tagv.com/2006/11/css.html
Все таки в использовании классов вида “two-columns” есть что то неправильное ;)
VasT // 6 мая 2007 в 14:41
Я бы ещё убрал br’ы после label’ов и добавил для label правило: display: block;
VasT // 6 мая 2007 в 14:44
Sorry, это был комментарий к предыдущей части эпической драмы о формах.