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

jef*_*eff 7 html html-table w3c-validation html-heading

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

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

Mr.*_*ien 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>
Run Code Online (Sandbox Code Playgroud)

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

<table>
   <tr>
      <h3>It's invalid</h3>
      <td>This is a cell</td>
   </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

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


Juk*_*ela 5

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

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

tr元素(表格行)的内容模型只允许thtd子元素,因此没有其他内容可以直接出现在其中,只能包含在th或 中td

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