Нужно ли иметь <tbody> в каждом столе?

Нужно ли иметь <tbody> в каждой таблице? Согласно стандартам.

Ответ 1

Только если вы определяете thead и tfoot. Он в основном используется, когда таблица имеет несколько тел контента. Если данные в таблице легко понять как tbody, тогда вы можете спокойно опустить его.

Ответ 2

Для небольшой части ваших пользователей, все еще использующих IE7, вы ДОЛЖНЫ добавить инкапсуляцию своего tr в тег tbody, если вы создаете таблицу с помощью методов DOM!

Это будет работать во всех основных браузерах:

var table = document.createElement('table');
var tbody = document.createElement('tbody');
var tr = document.createElement('tr');
tbody.appendChild(tr);
table.appendChild(tbody);

Это НЕ будет работать в IE7:

var table = document.createElement('table');
var tr = document.createElement('tr');
table.appendChild(tr);

Быстрое сообщение в блоге на строительных таблицах:
http://blog.svidgen.com/2012/05/building-tables-in-ie7-with-javascript.html

Может показаться, что я больше не прилагаю усилий для поддержки IE7 в своих проектах. Доля IE <= 7, вероятно, незначительна для большинства сайтов в этот момент.

Ответ 3

Цитирование Спецификация HTML 4: "Тег начала TBODY всегда требуется, за исключением случаев, когда таблица содержит только один элемент таблицы, а не таблицу или ночные фрагменты. Терминальный тег TBODY всегда можно безопасно исключить".

Итак, у вас должен быть тег <tbody>, если у вас есть <thead> или <tfoot>

Смотрите также: MDN

Ответ 4

Большинство браузеров прощают, но тем не менее я добавляю пару во все используемые мной таблицы. Даже тривиальные таблицы. Особенно сейчас, когда я использую CSS все больше и больше, чтобы украсить эти таблицы.

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

Дейв