使用:root CSS选择器而不是html CSS选择器有什么好处?

问题描述 投票:0回答:1

在HTML文档中,CSS3中引入的:root伪类选择器与html选择器相同,唯一的区别是:root具有更高的特异性。如果它们几乎相同,那么使用html有什么实际好处?

[我已经阅读到:root选择器对于声明全局CSS变量(即,可以在整个HTML代码中访问的变量)很有用。但是,我可以使用html选择器设置一个变量,该变量也将在整个HTML代码中可用。我在https://alligator.io/css/root-pseudo-class/上发现的唯一好处是,在:root中设置的CSS变量也可以用于设置SVG图形的样式。这是唯一的好处吗?

css css-selectors
1个回答
0
投票

您几乎用与:root<html>都匹配的<svg>的最后一点回答了自己的问题-或非HTML文档中的任何其他根元素。

[请记住,CSS不仅被设计为与HTML和SVG兼容,还被设计为与XML兼容,并且与XML一起,根元素可能与子元素共享相同的元素名称-因此,这是一种处理此类文档的方法,因为CSS没有提供其他选择only root元素进行样式设置的方法,因此它与:first-child:first-of-type:last-of-type等属于同一家族。 >

我将补充说,还有格式错误的HTML文档可能

在DOM中其他位置具有非法的<html>元素的风险。如果仅使用html作为选择器,则还将设置其他<html>元素的样式,如果您有普通的html { min-height: 100%; height: 100%; }规则,则会破坏网站的布局。将其更改为html:root { ... }可解决此问题。
© www.soinside.com 2019 - 2024. All rights reserved.