Нужно ли иметь <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 все больше и больше, чтобы украсить эти таблицы.
Все, что было сказано, у меня есть старые таблицы, которые все еще отлично работают в новейших браузерах. Я изучаю жесткий путь, но за несколько дополнительных микросекунд, чтобы добавить дополнительные теги здесь и там, в конечном итоге экономит ваши деньги/время в долгосрочной перспективе.
Дейв