CSS变量
虽然CSS变量已经出来了很多年,但是,大部分人在写CSS样式时,依然喜欢使用传统固定值的方式
传统CSS属性都是固定,虽然Sass和Less这类工具提供变量,但是最终还会解析编译为固定的CSS样式属性值。以往我们要实现这样的效果
都是这样
|
|
当CSS支持变量时,我们可以这样写
|
|
初一看,这玩意儿要申明,还要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变量来实现一些以往比较复杂的特效。