Используйте <table>
. Скорее всего, вы слышали, что использование таблиц в HTML - это плохая практика. Это правда, что вы должны избегать использования таблиц для макета . Но , если вы на самом деле отображаете табличные данные, то вам следует использовать таблицу. Если вы отображаете строки и столбцы данных, для меня это звучит как таблица. Было бы неуместно пытаться подделать это с помощью css.
Немного о том, почему. HTML-тег должен описывать его содержимое, а не его внешний вид. Например, <p>
представляет абзац, а не элемент блока с верхним и нижним полями и не то, что нужно использовать, когда вам нужно больше свободного места. Некоторым это нравится, потому что это кажется правильным. Это чисто и аккуратно и обеспечивает хорошее разделение между содержанием и стилем. Если все сделано правильно, это может упростить повторную обработку веб-сайта.
Но что еще более важно, это делает ОГРОМНОЕ различие для доступности. Рассмотрим программы чтения с экрана для слепых. Когда программа чтения с экрана встречает <table>
, она ожидает, что она будет содержать данные. Это позволяет пользователю перемещаться по таблице по столбцам, строкам и заголовкам. Использование таблицы в неподходящее время может быть очень запутанным. Правильное использование может значительно облегчить работу пользователя. Создание таблицы из элементов div и хитроумных трюков CSS вынуждает пользователя перемещаться по каждому элементу отдельно, вместо того, чтобы переходить к соответствующей строке и столбцу. Чтобы использовать ваш пример, если пользователь заполнял форму, а некоторые поля были не нужны, он мог бы легко перемещаться по <th>
, чтобы найти поля, которые ему нужно было заполнить.
Существуют и другие аналогичные причины следовать соглашению «теги описывают содержимое». Главным образом, это когда что-то кроме стандартного браузера потребляет вашу страницу. Подумайте, поисковые системы, каналы и т. Д. Есть
много
длинный
1024 * обсуждение *
о
это
онлайн .
HTML5 продвигает эту концепцию дальше с введением некоторых новых семантических тегов .