这个问题被问到 TH 标签,但我找不到 TD 标签。
我可以将标题放在<td>标签内吗?
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>
您可以随时在此处检查您的标记是否有效。
标签内不能出现任何元素。在td 元素内部,即在<td>标签和相应的(可能是隐式的)</td>标签之间,内容模型是“流内容”。这实际上意味着通常可能出现在文档正文中的任何内容。所以在语法上,h3是允许的。
的内容模型与HTML4th中的相同td,但在 HTML5 CR中,它受到更多限制,并且不包括标题元素等。
元素(表格行)的内容模型tr只允许th和td子级,因此其他任何内容都不能直接出现在其中,只能包裹在thor中td。
这些是语法规则,并不意味着所有内容都是有意义的。特别是,里面的标题元素th会相当反常(它的标题是什么?th标记本身意味着标题单元格),而在td单元格中它可能是完全有意义的(例如,在一个表格中分段比较两个文本旁边)。