Нужно ли использовать элементы thead, элемента tbody и tfoot теги?

должен ли я действительно использовать thead, tbody и tfoot теги каждый раз, когда я использую table - тег? Это требуется стандартом или нет?

6 ответов


эти теги не являются обязательными. Считается хорошей формой использовать их, если таблица используется для представления данных, для чего и должна использоваться таблица. Если таблица используется для размещения содержимого, они обычно опущены.

W3C по

Table of data


на табличные спецификации данных для 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>