使用css的全局变量,可以减少写很多重复代码。比如设置一个全局主题色变量,整个项目用到这个颜色的地方,都用变量设置,就很方便了。
一、root伪类和css变量
1. :root伪类
在刚入行的时候,我根本不知道有这么一个类,在css中发挥着很大的作用。(原谅我的愚蠢)
:root这个css伪类匹配文档树的根元素,对html来说代表<html>元素,除了优先级更高之外,和html选择器相同
2. css变量
也可以称之为自定义属性,总之是开发者自己定义的,比如在一个class中可以这样定义
注意,这个属性是有作用域的,也就是在.box下面声明的变量,只能在box以及他的子元素下面才有效,我们使用的时候需要配合var函数。
鉴于,属性有作用域的限制,所以多数情况下,我们在设置全局属性的时候,需要定义在:root伪元素下面,这样项目中的任何地方都可以使用到:
二、应用实例
1. 变量的应用
关于css变量的应用,我在我的系列文章【跟着官网学习vue3】有提到过
大家可以参考【2. 在scss中使用js变量】这一小节的内容
【vue3】06. 跟着官网学习vue3_我有一棵树的博客-CSDN博客
跟着官网学习vue3 ,class style的绑定,使用cs变量
https://blog.csdn.net/qq_17335549/article/details/126669483
2. 设置主题色
我遇到的关于root伪元素的应用,一个很典型的例子就是主题色的设置,项目中可以能需要增加两套主题色【白天、黑夜】两种主题,那么我们肯定是不能对每个样式都重复写两遍,效率低下。
所以解决办法是,写一套代码,但是在涉及到颜色的地方统一使用css变量,而这一系列的css变量需要写在:root中,使其成为全局变量,请看下面的例子:
3. 响应式布局
同样root+css变量,可以应用在响应式布局中
总结
善用css变量可以提高效率,让我们继续努力,掌握更多新鲜的知识。