CSS变量

虽然CSS变量已经出来了很多年,但是,大部分人在写CSS样式时,依然喜欢使用传统固定值的方式

传统CSS属性都是固定,虽然SassLess这类工具提供变量,但是最终还会解析编译为固定的CSS样式属性值。以往我们要实现这样的效果

都是这样

1
2
3
4
5
6
7
8
.title{
font-size:60px;
color:blue;
}

<div class="title">
Hello World!
</div>

当CSS支持变量时,我们可以这样写

1
2
3
4
5
6
7
8
9
:root{
--blue-color:blue;
--title-font-size:60px;
}

.title{
font-size:var(--title-font-size);
color:var(--blue-color);
}

初一看,这玩意儿要申明,还要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变量来实现一些以往比较复杂的特效。

作者

eyiadmin

发布于

2023-02-21

更新于

2024-05-31

许可协议

评论