Должен ли я использовать теги thead
, tbody
и tfoot
каждый раз, когда я использую тег table
? Требуется ли это по стандарту или нет?
Требуется ли использовать теги thead, tbody и tfoot?
Ответ 1
Те теги не требуются. Для их использования считается хорошей формой, если таблица используется для представления данных, для чего должна использоваться таблица. Если таблица используется для размещения контента, они обычно опускаются.
Ответ 2
спецификация табличных данных для HTML5 не требует их:
Контексты, в которых может использоваться этот элемент (
tr
):
- В качестве дочернего элемента
thead
.- В качестве дочернего элемента
tbody
.- Как дочерний элемент
tfoot
.- Как дочерний элемент
table
, после любыхcaption
,colgroup
иthead
элементов , но только если нет элементовtbody
, которые являются дочерними элементами элемента таблицы.
Несмотря на то, что я считаю хорошей практикой разделять ваши строки в тегах thead
, tbody
и tfoot
, поскольку упрощает идентификацию строк таблицы.
В конце браузер всегда будет добавлять по крайней мере tbody
для вас.
Ответ 3
Здесь есть различия между HTML и XHTML.
В HTML требуется элемент tbody
. Однако его начальный и конечный теги являются необязательными. Это означает, что если вы пишете
<table>
<tr><td>data</td></tr>
</table>
tr
всегда будет внутри tbody
, независимо от того, вы пишете теги явно или нет. Такая же история для этой таблицы:
<table>
<thead>
<tr><th>header</th></tr>
</thead>
<tr><td>data</td></tr>
</table>
Здесь второй tr
будет завернут в tbody
.
В XHTML, то tbody
элемент необходим, только если у вас есть thead
и/или tfoot
.
Итак, первый пример выше действителен XHTML. Однако есть разница с HTML: tr
будет непосредственно внутри table
в дереве DOM. (Вы не сможете увидеть разницу, но это нужно иметь в виду, если вам нужно манипулировать таблицей в JavaScript.)
Второй пример - неверный XHTML, и вы не должны удивляться, если он имеет разные результаты в разных браузерах.
Ответ 4
Короче говоря, если я помню статью, которую я прочитал правильно, ответ будет "Нет". Они не требуются по стандарту.
Ответ 5
Нет. Современные браузеры будут добавлять их по умолчанию.
Ответ 6
На ваш вопрос ответ "нет, они не нужны".
<tfoot>
строку таблицы с помощью <thead>
, <tfoot>
, <tbody>
, вы группируете их без использования идентификатора или класса. Позволяет больше настроек стиля, таких как фиксированный заголовок и тело, зависящее от прокрутки.
Простая таблица
<table>
<tr>
<td></td>
</tr>
</table>
с телом, тём
<table>
<thead>
<tr>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
Ответ 7
Две porpuses HTML5 были хорошей реализацией и правильным использованием разметки (чтобы сделать программную связь между элементами), а вторая - создание более доступных веб-страниц.
Как сообщает сайт https://webaim.org:
Тот, кто не может видеть таблицу, не может создавать эти визуальные ассоциации, поэтому для создания программной связи между элементами внутри таблицы следует использовать соответствующую разметку. Когда правильная разметка HTML находится на месте, пользователи экранных читателей могут перемещаться по таблицам данных по одной ячейке за раз, и они будут слышать заголовки столбцов и строк, с которыми они разговаривают.
Вот почему были созданы <thead>
и <tbody>
. Программное обеспечение для чтения с экрана будет работать с этими двумя тегами.
Надеюсь это поможет! Если вы хотите узнать больше, вы можете прочитать статью, которую я использовал в качестве ссылки.