是否有必要拥有?每张桌子上?

发布于 2024-09-06 11:32:04 字数 36 浏览 5 评论 0原文

按照标准,是不是每个表都必须有

According to standards, is it necessary to have <tbody> in every table?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

累赘 2024-09-13 11:32:04

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

Only if you define thead and tfoot. It is mostly used when the table has multiple bodies of content. If the data in the table is easily understood to be the tbody then you can safely omit it.

温柔女人霸气范 2024-09-13 11:32:04

引用 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

银河中√捞星星 2024-09-13 11:32:04

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

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

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 的份额可能可以忽略不计。

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:

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

This will NOT work in IE7:

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

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.

长发绾君心 2024-09-13 11:32:04

Dumb Guy给出了HTML4的答案)。 Arwym 给出相关问题的 HTML5 答案):

表格数据规范
HTML5

不需要它们:

<块引用>

可以使用此元素 (tr) 的上下文:

  • 作为 thead 元素的子元素。
  • 作为 tbody 元素的子元素。
  • 作为 tfoot 元素的子元素。
  • 作为 table 元素的子元素,位于任何 captioncolgroupthead 之后 元素,但前提是没有 tbody
    表格元素的子元素

尽管我相信对行进行分区是一个很好的做法
theadtbodytfoot 标记内,因为它构成表格的行
更容易识别。

最后,浏览器总是会至少为您添加tbody

Dumb Guy gave an answer for HTML4 (yes). Arwym gives an answer for HTML5 to a related question (no):

The tabular data spec for
HTML5

does not require them:

Contexts in which this element (tr) can be used:

  • As a child of a thead element.
  • As a child of a tbody element.
  • As a child of a tfoot element.
  • As a child of a table element, after any caption, colgroup, and thead elements, but only if there are no tbody
    elements that are children of the table element
    .

Even though I believe it is a good practice to section your rows
within thead, tbody and tfoot tags as it makes the table's rows
easier to identify.

In the end, the browser will always add at least the tbody for you.

分开我的手 2024-09-13 11:32:04

根据 HTML 3.2 规范 (table< /code> 不在 HTML 2 规范中)table 元素没有 tbodytheadtfoot (它们是 HTML 4 的东西),只有可选的 captiontr / 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 have tbody, thead, tfoot (they are HTML 4 things), only optional caption and list of tr / 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.

长发绾君心 2024-09-13 11:32:04

大多数浏览器都是宽容的,但即便如此,我还是在我现在使用的所有表中添加了该对。即使是琐碎的桌子。特别是现在我越来越多地使用 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文