小编典典

无法识别的HTML元素的默认设置

css

如果我在HTML中使用自定义或不受支持的元素,则仍然可以设置样式,浏览器将呈现它们。

例如,mainInternet Explorer11和更早版本源]不支持HTML5
元素。当main由IE呈现时,涉及margin和的CSS规则overflow将被忽略。这意味着display无法识别的元素的值为inline

无法识别的元素的初始设置在哪里定义?

(注意:我不是在问使用自定义元素的利弊。我只是想知道CSS默认情况下的功能。)


阅读 305

收藏
2020-05-16

共1个答案

小编典典

与其说是 所有 元素,不如说是 无法识别的 元素。请记住,CSS支持XML和HTML。在XML中,所有元素均 无法识别

在CSS 2.1规范中,第6.1.1节说:

6.1.1指定值

用户代理必须首先根据以下机制(优先顺序)为每个属性分配一个指定的值:

  1. 如果级联产生一个值,请使用它。除此之外,如果值为“ inherit”,则在下面的““ inherit”值”中定义指定的值。

  2. 否则,如果该属性被继承并且该元素不是文档树的根,请使用父元素的计算值。

  3. 否则,请使用属性的初始值。每个属性的初始值在属性的定义中指示。

根据定义,无法识别的元素不会在用户代理样式表中提及,并且由于我们在谈论默认行为,因此在作者样式表中也不会提及。因此1不适用。

display属性在9.2.4’display’属性中定义。在那里的规则中,它说Inherited: no,所以2不适用。

因此适用3。再次从9.2.4的规则开始,我们有了Initial: inline,所以元素是内联的。

对于HTML块级元素,由于它们在用户代理的样式表中已列出,因此默认情况下它们是块。对于其他显示值,例如table,类似list-item

2020-05-16