这个问题被问到 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
子级,因此其他任何内容都不能直接出现在其中,只能包裹在th
or中td
。
这些是语法规则,并不意味着所有内容都是有意义的。特别是,里面的标题元素th
会相当反常(它的标题是什么?th
标记本身意味着标题单元格),而在td
单元格中它可能是完全有意义的(例如,在一个表格中分段比较两个文本旁边)。