是否有必要拥有?每张桌子上?
按照标准,是不是每个表都必须有?
According to standards, is it necessary to have <tbody>
in every table?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
按照标准,是不是每个表都必须有?
According to standards, is it necessary to have <tbody>
in every table?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
仅当您定义
thead
和tfoot
时。它主要在表格具有多个内容体时使用。如果表中的数据很容易理解为tbody
,那么您可以安全地忽略它。Only if you define
thead
andtfoot
. It is mostly used when the table has multiple bodies of content. If the data in the table is easily understood to be thetbody
then you can safely omit it.引用 HTML 4 规范:“TBODY 开始标记始终是必需的,除非桌子仅包含一个桌子主体并且没有桌子头部或底部部分,TBODY 结束标记始终可以安全地省略。”
因此,如果您有
或
标记,则必须有
标记。代码>
另请参阅:MDN
Quoting the HTML 4 spec: "The TBODY start tag is always required except when the table contains only one table body and no table head or foot sections. The TBODY end tag may always be safely omitted."
So, you must have a
<tbody>
tag if you have a<thead>
or<tfoot>
See also: MDN
对于仍在使用 IE7 的一小部分用户,如果您使用 DOM 方法构建表,则必须将 tr 封装在 tbody 标记中!
这适用于所有主要浏览器:
这不适用于 IE7:
我的一篇关于构建表格的快速博客文章:
http://blog.svidgen.com/2012 /05/building-tables-in-ie7-with-javascript.html
值得注意的是,我不再努力在自己的项目中支持 IE7。目前,对于大多数网站来说,IE<=7 的份额可能可以忽略不计。
For the small fraction of your users still using IE7, you MUST add encapsulate your tr's in a tbody tag if you're building a table with the DOM methods!
This will work in all major browsers:
This will NOT work in IE7:
A quick blog post of mine on building tables:
http://blog.svidgen.com/2012/05/building-tables-in-ie7-with-javascript.html
It may be notable that I no longer make the effort to support IE7 on my own projects. The IE<=7 share is likely negligible for most sites at this point.
Dumb Guy给出了HTML4的答案(是)。 Arwym 给出相关问题的 HTML5 答案(否):
Dumb Guy gave an answer for HTML4 (yes). Arwym gives an answer for HTML5 to a related question (no):
根据 HTML 3.2 规范 (
table< /code> 不在 HTML 2 规范中)
table
元素没有tbody
、thead
、tfoot
(它们是 HTML 4 的东西),只有可选的caption
和tr
/th
列表。虽然您可能认为您在 2021 年谈论 1997 年的 HTML 3.2 到底是什么鬼,考虑使用原始或过时的 HTML 引擎的电子邮件客户端,但
tbody
在这里毫无意义。According to HTML 3.2 spec (
table
wasn't in HTML 2 spec)table
element doesn't havetbody
,thead
,tfoot
(they are HTML 4 things), only optionalcaption
and list oftr
/th
.While you might think what's the hell you are talking about HTML 3.2 dated 1997 in 2021 consider email clients with primitive or outdated HTML engines,
tbody
makes no sense in here.大多数浏览器都是宽容的,但即便如此,我还是在我现在使用的所有表中添加了该对。即使是琐碎的桌子。特别是现在我越来越多地使用 CSS 来装饰这些表格。
话虽这么说,我的旧表在最新的浏览器上仍然可以正常工作。我正在努力学习,但从长远来看,多花几微秒的时间在这里和那里添加可选标签最终会节省您的金钱/时间。
戴夫
Most browsers are forgiving but even so I add the pair in all tables that I use now. Even trivial tables. Especially now that I'm using CSS more and more to decorate those tables.
All that being said I have old tables that still work fine on the newest browsers. I'm learning the hard way but taking the few extra Micro seconds to add the optional tags here and there ends up saving you money/time in the long run.
Dave