CSS变量
虽然CSS变量已经出来了很多年,但是,大部分人在写CSS样式时,依然喜欢使用传统固定值的方式
传统CSS属性都是固定,虽然Sass
和Less
这类工具提供变量,但是最终还会解析编译为固定的CSS
样式属性值。以往我们要实现这样的效果
都是这样
1 | .title{ |
当CSS支持变量时,我们可以这样写
1 | :root{ |
初一看,这玩意儿要申明,还要var
来使用,怎么这么麻烦。但是它也有它的优势,如,减少样式代码的重复,使样式代码更灵活,从而也能使得我们效率得以提升,特别是在切换主题样式时,通过CSS变量
就能轻松处理。既然这样,那么我们就得了解一下。
CSS
变量声明:--变量名
,注意,是两横杠加变量名且大小写敏感,如:--color
,--font-size
,CSS
变量使用:var(--变量名)
或者var(--变量名,默认值)
,当变量名不存在时,会使用默认值作为属性值,如:color:var(--color)
,color:var(--color,blue)
CSS
变量类型:数字和字符,CSS
变量作用范围:全局作用域
和局部作用域
,
1. 全局作用域需要声明在:root{}
下,即当前文档范围内
2. 局部作用域
需声明在选择器
中,即在选择器作用范围内
CSS
变量可与JS交互:
1. 设置CSS
变量: [element].style.setProperty(‘–变量名’,’属性值’),如:document.body.style.setProperty('--color', '#f66');
2. 获取CSS
变量:[element].style.getPropertyValue(‘–变量名’),如:document.body.style.getPropertyValue('--color');
3. 删除CSS
变量:[element].style.removeProperty(‘–变量名’);
在实际项目中,我们也可以借助CSS
变量来实现一些以往比较复杂的特效。