将h3(或任何标题)放入td标签是否有效?

时间:2013-10-09 10:03:47

标签: html html-table w3c-validation html-heading

问题是TH标签,但我找不到TD标签。

我可以在<td>代码中添加标题吗?

2 个答案:

答案 0 :(得分:7)

thead不是h3,如果您在h3元素中使用td,则绝对没问题,但如果您使用h3作为直接子项到tr无效。

为了使用thead,您可以像这样使用它

<table>
   <thead>
      <tr>
         <th>This is table head and not h3</th>
      </tr>
   </thead>
   <tfoot>
      <tr>
         <td>Foot Cell</td>
      </tr>
   </tfoot>
   <tbody>
       <tr>
          <td>
             <h3>It's completely valid to put your h3 here</h3>
             Table cell
             <p>You can also use p tag here
           </td>
       </tr>
   </tbody>
</table>

但如果你这样做,那就无效了

<击>

<击>
<table>
   <tr>
      <h3>It's invalid</h3>
      <td>This is a cell</td>
   </tr>
</table>

<击>

您随时可以查看here您的标记是否有效。

答案 1 :(得分:4)

标签内不会出现任何元素。在td element内,即在<td>标记和相应的(可能隐含的)</td>标记之间,内容模型是“流内容”。这实际上意味着一般可能出现在文档正文中的任何内容。从语法上讲,h3是允许的。

th的内容模型与HTML4中td的内容模型相同,但in HTML5 CR更为有限,不包括标题元素等。

tr元素(表格行)的内容模型只允许thtd个孩子,因此其中没有任何其他内容直接包含在thtd

这些是语法规则,并不意味着所有内容都有意义。特别是,th内的标题元素会相当异常(标题是什么?th标记本身意味着标题单元格),而在td单元格中它可以完美的意义(例如,在一个并排比较两个文本的表格中)。