0
点赞
收藏
分享

微信扫一扫

CSS 中的变量


CSS 中的变量_css

  • 1. 前言
  • 2. 声明变量
  • 3. var() 函数
  • 4. 变量的作用域

1. 前言

在 CSS 中,有很多需要反复使用的属性值,如果每个使用的地方都直接写死这个值,而没有使用变量去定义这个值的话,后期修改起来会很麻烦。有很多人忽略了在 CSS 中也可以定义变量这个事情,相信你会爱上它 !

CSS 使用变量有很多好处: 可以减少样式代码的重复性,增加样式代码的扩展性和灵活性

2. 声明变量

声明变量的时候,变量名前面要加两根连词线 ​​--​

​​:root {​​
​​--color: #ff5722;​​
​​--size: 25px;​​
​​--shadow: 2px 2px 5px 1px rgba(143, 143, 143, .1)​​
​​}​​

上面代码中,声明了三个变量: ​​--color​​​、​​--size​​​、​​--shadow​

变量名大小写敏感,例如: ​​--header​​​ 和 ​​--Header​​ 是两个不同的变量

它们与 ​​color​​​, ​​font-size​​ 等正式属性没有什么不同,只是没有默认含义,所以 CSS 变量又叫做 CSS 自定义属性

你可能会问,为什么选择两根连词线(​​--​​​)表示变量?因为 ​​$foo​​​ 被 Sass 用掉了,​​@foo​​ 被 Less 用掉了。为了不产生冲突,官方的 CSS 变量就改用两根连词线了。

3. var() 函数

​var()​​ 函数用于读取变量

​​div {​​
​​font-size: var(--size);​​
​​box-shadow: var(--shadow);​​
​​}​​

​var()​​ 函数还可以使用第二个参数,表示变量的默认值。如果变量不存在,就会使用这个默认值

​font-size: var(--size, 30px);​

​var()​​ 函数还可以用在变量的声明

​--big-size: var(--size);​

变量值只能作为属性名,不能作为属性值。下面代码中,变量 ​​--side​​ 用作属性名,这是无效的。

​​.foo {​​
​​--side: margin-top;​​
​​/* 无效 */​​
​​var(--side): 20px;​​
​​}​​

4. 变量的作用域

同一个 CSS 变量,可以在多个选择器内声明。读取的时候,优先级最高的声明生效,这与 CSS 的层叠规则是一致的

下面代码中,三段文字的颜色是不一样的

​​<style>​​
​​:root { --color: blue; }​​
​​div { --color: green; }​​
​​#alert { --color: red; }​​
​​* { color: var(--color); }​​
​​</style>​​

​​<p>蓝色</p>​​
​​<div>绿色</div>​​
​​<div id="alert">红色</div>​​

变量的作用域就是它所在选择器的有效范围内

由于这个原因,全局的变量通常放在根元素 ​​:root​​ 里面,确保任何选择器都可以读取它们

​​:root {​​
​​--color: #ff5722;​​
​​--size: 25px;​​
​​--shadow: 2px 2px 5px 1px rgba(143, 143, 143, .1)​​
​​}​​

举报

相关推荐

0 条评论