如果我在HTML中使用自定义或不受支持的元素,它们仍然可以设置样式,浏览器将呈现它们。
例如,Internet Explorer 11及更早版本(source)不支持HTML5 main
元素。当IE呈现main
时,将忽略涉及margin
和overflow
的CSS规则。这意味着无法识别的元素的display
值为inline
。
定义了无法识别的元素的初始设置在哪里?
(注意:我没有询问使用自定义元素的优缺点。我只想知道默认情况下CSS的用途。)
答案 0 :(得分:5)
与无法识别的元素不同,所有元素。请记住,CSS支持XML和HTML。在XML中,所有元素都是无法识别的
在CSS 2.1规范中,section 6.1.1说:
6.1.1指定值
用户代理必须首先为每个属性分配指定的值 在以下机制上(按优先顺序排列):
如果级联产生值,请使用它。除此之外,如果值为'inherit',则指定的值在“The inherit”中定义 价值“下面。
否则,如果继承该属性并且该元素不是文档树的根,请使用父计算的值 元件。
- 醇>
否则使用属性的初始值。每个属性的初始值在属性的定义中指示。
根据定义,用户代理样式表中将不会提及无法识别的元素,并且由于我们讨论的是默认行为,因此也不会在作者样式表中提及。所以1不适用。
显示属性在9.2.4 The 'display' property中定义。在那里的规则中,它表示Inherited: no
,因此2不适用。
所以3适用。再次从9.2.4的规则,我们有Initial: inline
,因此元素是内联的。
对于HTML块级元素,默认情况下它们是块,因为它们在用户代理的样式表中列出。与其他显示值类似,例如table
,list-item
等