Нужно ли иметь <tbody>в каждой таблице? - PullRequest
31 голосов
/ 20 июня 2010

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

Ответы [ 4 ]

39 голосов
/ 20 июня 2010

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

17 голосов
/ 16 мая 2012

Для небольшой части ваших пользователей, все еще использующих 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, вероятно, незначительна для большинства сайтов. </sup>

11 голосов
/ 20 июня 2010

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

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

.

0 голосов
/ 20 июня 2010

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

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

Дейв

...