Если это таблица с фиксированной шириной, ее легко разместить с помощью div и float. Просто установите для каждой ширины именно то, что вы хотите.
Для таблицы с жидким макетом — а жидкий макет, как правило, очень желателен — гораздо сложнее организовать форму без отображения в стиле таблицы, потому что float
и position
не позволяют легко выполнять вычисления типа «эта ячейка составляет половину оставшейся ширины». родителя после выделения меток фиксированной ширины».
Таким образом, в подобных случаях, которые, безусловно, включают форму с двумя столбцами, которую вы разместили, значения table-*
CSS display
являются вашей единственной возможностью. Если вы нацелены только на IE8 и другие современные браузеры, вы можете использовать div и установить display: table-row
и др. в таблице стилей. Однако для совместимости с IE6-7 и другими старыми/мобильными/нишевыми браузерами вам придется использовать настоящие элементы <table>
/<tr>
/<td>
, поскольку только современные браузеры поддерживают таблицу-CSS независимо от элементов таблицы.
В этом нет ничего постыдного. В любом случае форма представляет собой своего рода полутаблицу, и нет практического недостатка доступности, поскольку содержимое страницы остается упорядоченным соответствующим образом.
Примечание. Для форм с гибким макетом у вас также возникает проблема с размером полей ввода, чтобы они соответствовали родительскому элементу. input { width: 100%; }
почти делает это, но не совсем, потому что width
не включает границу или отступы, которые ввод получает по умолчанию. Вы можете использовать CSS3 box-sizing
и его версии для конкретных браузеров, чтобы обойти это для современных браузеров, но если вы хотите, чтобы он точно соответствовал пикселю в IE6-7, вам придется использовать отступы для родительских элементов, равные граница/заполнение дочернего поля ввода.
person
bobince
schedule
24.08.2010