首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML5是否禁止th细胞进入tbody?

HTML5是否禁止th细胞进入tbody?
EN

Stack Overflow用户
提问于 2011-04-01 04:27:15
回答 3查看 16.5K关注 0票数 53

我有以下标记作为Razor视图的一部分:

代码语言:javascript
复制
<table>
  <caption>Presidents</caption>
  <thead>
    <tr>
      <th scope="col">Name</th>
      <th scope="col">Born</th>
      <th scope="col">Died</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Washington</th>
      <td>1732</td>
      <td>1799</td>
    </tr>
    <!-- etc -->
  </tbody>
</table>

将“验证的目标模式”设置为HTML5后,Visual会发出这样的抱怨:

警告1验证(HTML5):元素'th‘不能嵌套在元素'tbody tfoot’中。

这是真的吗?如果是的话,有人能链接到规范吗?

我的理解是,对行标题使用<th>不仅合法,而且鼓励。当然,这似乎相当普遍,我可以链接几十个教程,解释(似乎明智地)它有助于可访问性。

这是VS的错误吗?HTML5带来了真正的改变(好的改变?)坏的?)?怎么回事?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-01 04:35:41

我的理解是,对行标题使用<th>不仅是合法的,而且鼓励

据我所知,这在HTML 4(可能是它的前身)中是合法的,而且在HTML5中没有改变。

W3C的HTML5验证器虽然还处于试验阶段,但没有报告警告或错误。再说一次,我确信Visual使用的HTML5验证也是实验性的,因为HTML5本身还没有最终完成。

关于标记表格数据的HTML5规范 (特别是第4.9.13节 )显示了在<tbody><tfoot>中使用<th>对行数据进行范围设置:

代码语言:javascript
复制
<table>
 <thead>
  <tr>
   <th>
   <th>2008
   <th>2007
   <th>2006
 <tbody>
  <tr>
   <th>Net sales
   <td>$ 32,479
   <td>$ 24,006
   <td>$ 19,315
  <tr>
   <th>Cost of sales
   <td>  21,334
   <td>  15,852
   <td>  13,717
 <tbody>
  <tr>
   <th>Gross margin
   <td>$ 11,145
   <td>$  8,154
   <td>$  5,598
 <tfoot>
  <tr>
   <th>Gross margin percentage
   <td>34.3%
   <td>34.0%
   <td>29.0%
</table>

因此,将<th>元素包含在<tbody><tfoot>中的<tr>元素中是完全合法的。无论如何,应该是这样的,因为表标题不只是在表标题上找到的。

票数 66
EN

Stack Overflow用户

发布于 2011-04-01 04:37:36

HTML5规范tr和规范实际上包括一个th嵌套在tbody中的示例。

票数 13
EN

Stack Overflow用户

发布于 2013-08-17 00:14:54

通常,THTHEAD中的scope值为"col",而THTBODY中的scope值为"row"

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5509163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档