8

这个问题被问到 TH 标签,但我找不到 TD 标签。

我可以将标题放在<td>标签内吗?

4

2 回答 2

9

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>

您可以随时在此处检查您的标记是否有效。

于 2013-10-09T10:06:17.890 回答
5

标签内不能出现任何元素。在td 元素内部,即在<td>标签和相应的(可能是隐式的)</td>标签之间,内容模型是“流内容”。这实际上意味着通常可能出现在文档正文中的任何内容。所以在语法上,h3是允许的。

的内容模型与HTML4th中的相同td,但在 HTML5 CR中,它受到更多限制,并且不包括标题元素等。

元素(表格行)的内容模型tr只允许thtd子级,因此其他任何内容都不能直接出现在其中,只能包裹在thor中td

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

于 2013-10-09T11:26:18.863 回答