Нужно ли использовать элементы thead, элемента tbody и tfoot теги?
должен ли я действительно использовать thead
, tbody
и tfoot
теги каждый раз, когда я использую table
- тег? Это требуется стандартом или нет?
6 ответов
эти теги не являются обязательными. Считается хорошей формой использовать их, если таблица используется для представления данных, для чего и должна использоваться таблица. Если таблица используется для размещения содержимого, они обычно опущены.
на табличные спецификации данных для HTML5 не требует от них:
контексты, в которых этот элемент (
tr
) можно использовать:
- как дитя
thead
элемент.- как дитя
tbody
элемент.- как дитя
tfoot
элемент.- как дитя
table
элемент, послеcaption
,colgroup
иthead
элементы, но только если нетtbody
элементы, являющиеся дочерними элементами элемента таблицы.
хотя я считаю, что это хорошая практика, чтобы разделить ваши строки в thead
, tbody
и tfoot
теги, поскольку это упрощает идентификацию строк таблицы.
в конце концов, браузер всегда будет добавлять по крайней мере tbody
для вас.
здесь есть различия между HTML и XHTML.
в HTML элемент. Однако его теги start и end являются необязательными. Это означает, если вы пишете
<table>
<tr><td>data</td></tr>
</table>
the 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, и вы не должны удивляться, если он имеет разные результаты в различные обозреватели.
короче говоря, если я помню статью, которую я правильно прочитал, ответ "Нет". Они не требуются стандартные.
на ваш вопрос, ответ "нет, они не нужны".
по метке строки таблицы с <thead>
, <tfoot>
, <tbody>
, вы группируете их без использования ID или class. Разрешение дополнительных настроек стиля, таких как фиксированный заголовок и прокручиваемое тело.
простая таблица
<table>
<tr>
<td></td>
</tr>
</table>
С thead, tbody
<table>
<thead>
<tr>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>