为什么我不能有一个 内部的 ?(Why can’t I have a in

2019-09-17 14:20发布

我想了解什么是不对的:

<body>
    <h2>
        <table>
        <tr>
            <td> Text</td>
        </tr>
        </table>
    </h2>
</body>

验证抱怨:文档类型不允许元素“表”在这里; 失踪“对象”,“项”,“删除”,“地图”,“按钮”的一个开始标记

进一步解释说:

所提到的要素是不允许出现在你已经把它的背景; 其它提及的元素是唯一被允许二者存在,并且可以包含所提到的元件。 这可能意味着你需要一个包含的元素,或者可能是你忘了关闭前一个元素。

一个可能的原因此消息是所尝试把一个块级元素(如“ <p> ”或“ <table> ‘)的内联元件内(例如,’ <a> ”,“ <span> “或” <font> “)。

无论H2和表是块级,因此最后的评论似乎并不适用。 我想与H2尺寸元素是所有的表...什么是告诉表使用h2的使用同样大小的正确方法?

谢谢!

Answer 1:

CSS。 表根本不容许里面的标题,因为它没有任何语义意义。 你见过一本书章节,其标题是表? 不要使用HTML外观语义标签; 自己的样式。

不要紧,是否table为块或内联通过CSS,只有HTML DTD说它们是什么。 看看这里 :只有“流”元素被允许进入td 。 按照链接看到“流”的定义是:你会看到它的“内联”或“块”。 您可以继续遵循这些链接下来,直到你发现,如sub是好的,因为是span ...但你不会找到table

此外-表,甚至没有display: block -他们有自己的布局值, display: table 。 这不是问题。



Answer 2:

CSS是改变HTML元素的大小合适的方式。 HTML是不是设计用来创建的视觉效果。

有没有在CSS没有办法明确告诉一个<table>是任何尺寸<h2> s为。

但是,你可以告诉表和H2S这两个是一个特定的大小,例如:

h2,
table {
    font-size: 2em;
}

你也可以使用Chrome的Web检查(或其他浏览器类似的工具)来检查默认样式是什么,并应用相关的人到你的表。 这些默认样式会虽然浏览器之间有所不同。

至于为什么你不能有一个表里面<h2>标签,我不知道把我的头顶部,如果HTML规范提供理论依据其嵌套的规则,但<h2> s的意思来标记标题,即文本的相对较短的片段描述文档的一部分。

这是很难想象的表怎么会是一个适当的标题。



文章来源: Why can’t I have a
inside an

?