CSS变量(自定义属性)

我们知道使用sassless这样的预处理器可以让我们在css中使用变量等便利的特性。
随着css新特性的不断增加,官方也提供了css变量供我们使用,叫做自定义属性,下面我们来看看怎么使用它。

变量的声明

声明变量的时候,变量名前面要加两根连词线(–)

:root {
  --foo: #EEEEEE;
  --bar: #FFFFFF;
}

这样我们就在根节点声明了两个自定义的变量foobar

:root {
  --Foo: #73A4F4;
  --foo: #EEEEEE;
}

需要注意的是变量名的大小写是敏感的Foofoo是两个不同的变量

变量的使用

使用var()函数读取变量

a {
  color: var(--foo);
  text-decoration-color: var(--bar);
}

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

a {
  color: var(--foo, #7F583F);
}

第二个参数不处理内部的逗号或空格,都视作参数的一部分。

var(--font-stack, "Roboto", "Helvetica");
var(--pad, 10px 15px 20px);

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

:root {
  --primary-color: red;
  --logo-text: var(--primary-color);
}

兼容性处理

对于不支持 CSS 变量的浏览器,可以采用下面的写法。

a {
  color: #7F583F;
  color: var(--primary);
}

也可以使用@support命令进行检测。

@supports ( (--a: 0)) {
  /* supported */
}

@supports ( not (--a: 0)) {
  /* not supported */
}

参考链接

CSS 变量教程
Winning with CSS Variables