网上大约99%的CSS自定义属性都是在:root上设置的。有想过为什么他们都是在:root中设置自定义属性吗?
:root {
--color: red;
}
html {
--color: blue;
}
.example {
background: var(--color);
/*会变红,因为:root优先级更高*/
}
建议使用:root的主要原因是因为CSS不仅用于设置HTML文档的样式,它还用于XML和SVG文件。对于XML和SVG文件,:root不会选择html元素,而是选择它们的根(例如svg文件中的SVG标记)。
因此,全局范围的自定义属性的最佳实践是:root。使用的人多了,它很快就变成了“标准”。