【问题标题】:Is tbody before thead valid前面的 tbody 是否有效
【发布时间】:2018-09-30 06:09:48
【问题描述】:

我在这里有一个简单的表格,其中 tbody 在 thead 之前

该表格仍然适用于头部上方的身体,但这是有效的,并且适用于所有现代浏览器。

我这样做是为了解决粘性标题的问题

<table>
  
  <tbody>
    <tr>
      <td>One</td>
      <td>Two</td>
      <td>Three</td>
    </tr>
  <tbody>
  <thead>
    <tr>
      <th>Header 1</th>
      <th>Header 2</th>
      <th>Header 3</th>
    </tr>
  </thead>
<table>

【问题讨论】:

标签: html html-table


【解决方案1】:

&lt;tbody&gt; 元素之后的&lt;thead&gt; 元素无效。您可以在 HTML5-Validator 上验证您的 HTML5 标记。验证后显示此错误:

错误: 元素 &lt;thead&gt; 在此上下文中不允许作为元素 &lt;table&gt; 的子元素。

可以使用元素&lt;thead&gt;的上下文:
作为&lt;table&gt; 元素的在任何&lt;caption&gt;&lt;colgroup&gt;元素和在任何之前&lt;tbody&gt;,@ 987654335@ 和 &lt;tr&gt; 元素,但前提是没有其他 &lt;thead&gt; 元素是 &lt;table&gt; 元素的子元素。

还要注意&lt;table&gt; 元素的内容模型:

按此顺序:可选的&lt;caption&gt; 元素,后跟零个或多个&lt;colgroup&gt; 元素,可选的后跟一个&lt;thead&gt; 元素,后跟零个或多个&lt;tbody&gt; 元素或一个或多个&lt;tr&gt;元素,后跟可选的 &lt;tfoot&gt; 元素,可选地与一个或多个脚本支持元素混合。

所以&lt;table&gt; 元素中的元素顺序很重要。

以下 HTML 标记是有效的 HTML5:

<table>
  <thead>
    <tr>
      <th>Header 1</th>
      <th>Header 2</th>
      <th>Header 3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>One</td>
      <td>Two</td>
      <td>Three</td>
    </tr>
    <tr>
      <td>One</td>
      <td>Two</td>
      <td>Three</td>
    </tr>
    <tr>
      <td>One</td>
      <td>Two</td>
      <td>Three</td>
    </tr>
  </tbody>
</table>

注意:在这种情况下,您还可以删除结束标签&lt;/thead&gt;&lt;/tbody&gt;,因为...

如果&lt;thead&gt; 元素后面紧跟&lt;tbody&gt;&lt;tfoot&gt; 元素,则可以省略&lt;thead&gt; 元素的结束标记。


您可以在HTML specification找到以上所有信息。

【讨论】:

  • 你打败了我。我的回答基本一样。我留下我的,因为它包含规范的链接。如果您在答案中包含这些内容,我会删除我的。来自我的 +1
【解决方案2】:

原始问题的 html 无效,@ttmt 没有关闭 tbody,这使验证器认为他在 tbody 中有一个 thead,因此当前接受的答案是错误的。

Thead、Tbody 和 Tfoot 不能在彼此内部,但根据当前的 html5 规范,它们可以以任何给定顺序出现在 table 标记内

https://html.spec.whatwg.org/multipage/tables.html#the-thead-element

【讨论】:

  • 在链接的规范中说,thead 可以用作“作为表格元素的子元素,在任何标题和 colgroup 元素之后以及 在任何 tbody、tfoot 和 tr 元素之前,但前提是没有其他作为 table 元素的子元素的 thead 元素。"
猜你喜欢
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 2019-02-14
  • 2010-10-12
  • 2015-05-28
  • 1970-01-01
相关资源
最近更新 更多