是否有必要在每张桌子上都有<tbody>?

Jit*_*yas 32 xhtml w3c semantic-markup w3c-validation

是否有必要<tbody>在每张桌子上?根据标准.

Aar*_*run 40

只有你定义theadtfoot.它主要在表具有多个内容体时使用.如果表中的数据很容易被理解为,tbody那么您可以安全地省略它.

  • @ metal-gear-solid - 不仅仅是Firefox,在text/html序列化中,所有浏览器都会推断缺少的tbody标签.当然,不是在application/xhtml + xml序列化中. (3认同)
  • 从语义上讲,如果你的表有一个带有`<th>`的标题,那么你应该使用`<thead>`虽然它不是*必需*你这样做.如果你使用它们作为列的标题,那么你不应该把它们放在`tbody`中,但如果它们是一行的标题,它们就可以. (2认同)
  • @Aaron Harun - 我刚刚注意到firefox总是将`tbody`添加到表中,即使我们不使用`<thead>`,`<tfoot>`和多个`<tbodies>` (2认同)

svi*_*gen 17

对于仍在使用IE7的一小部分用户,如果要使用DOM方法构建表,则必须在tbody标记中添加封装tr!

这适用于所有主流浏览器:

var table = document.createElement('table');
var tbody = document.createElement('tbody');
var tr = document.createElement('tr');
tbody.appendChild(tr);
table.appendChild(tbody);
Run Code Online (Sandbox Code Playgroud)

这在IE7中不起作用:

var table = document.createElement('table');
var tr = document.createElement('tr');
table.appendChild(tr);
Run Code Online (Sandbox Code Playgroud)

我的一篇关于构建表的快速博客文章:http:
//blog.svidgen.com/2012/05/building-tables-in-ie7-with-javascript.html

值得注意的是,我不再努力在我自己的项目上支持IE7.此时IE <= 7的份额对于大多数站点来说可能是微不足道的.


Dum*_*Guy 11

引用HTML 4规范:"除非表格仅包含一个表格主体且没有桌面或脚部分,否则始终需要TBODY开始标记.可以始终安全地省略TBODY结束标记."

所以,<tbody>如果你有一个那个,你必须有一个标签<thead> <tfoot>

另见:MDN