我想了解这有什么问题:
<body>
<h2>
<table>
<tr>
<td> Text</td>
</tr>
</table>
</h2>
</body>
验证者抱怨: 文档类型不允许元素“表”在这里;缺少“object”,“ins”,“del”,“map”,“button”start-tag
之一进一步解释说:
上述元素不允许出现在您放置它的上下文中;其他提到的元素是唯一允许存在的元素,并且可以包含所提到的元素。这可能意味着您需要一个包含元素,或者您可能忘记关闭前一个元素。
此消息的一个可能原因是您尝试将块级元素(例如“
<p>
”或“<table>
”)放入内联元素(例如“{{ 1}}“,”<a>
“或”<span>
“)。
h2和table都是块级别,因此最后的注释似乎不适用。我想要一个具有h2大小元素的表格,这是...告诉表格使用与h2使用的相同大小的正确方法是什么?
谢谢!
答案 0 :(得分:3)
CSS。在标题内部不允许使用表格,因为它没有语义意义。你见过一本书的章节,其标题是一张桌子吗?不要使用HTML语义标签进行外观;自己设计。
CSS table
是块还是内联并不重要,只是HTML DTD所说的内容。查看here:只允许“流”元素进入td
。点击链接查看“流程”的定义:你会看到它是“内联”或“阻止”。您可以继续关注这些链接,直到找到,例如sub
很好,span
也没问题......但你找不到table
。
此外 - 表格甚至不是display: block
- 它们有自己的布局值display: table
。并不重要。
答案 1 :(得分:2)
CSS是更改HTML元素大小的合适方法。 HTML不是用于创建视觉效果的。
CSS中没有办法明确告诉<table>
是<h2>
的大小。
但是,你可以告诉表和h2都是一个特定的大小,例如:
h2,
table {
font-size: 2em;
}
您还可以使用Chrome的Web Inspector(或其他浏览器中的类似工具)检查默认样式,并将相关样式应用于您的表格。这些默认样式可能因浏览器而异。
至于为什么你不能在<h2>
标签内放置一个表格,如果HTML规范为其嵌套规则提供了基本原理,我不确定是不是最重要的,但<h2>
s用于标记标题,即描述文档部分的相对较短的文本。
很难想象桌子如何成为合适的标题。