Skip to content

CSS变量

CSS 变量一般指 CSS 自定义属性(Custom Properties),用 -- 开头,配合 var() 使用。

定义

声明一个自定义属性,属性名需要以两个减号(--)开始,属性值则可以是任何有效的 CSS 值。和其他属性一样,自定义属性也是写在规则集之内的,如下:

css
:root {
  --main-color: #409eff;
  --gap: 12px;
  --font-size: 14px;
}

使用变量

使用一个局部变量时用 var() 函数包裹以表示一个合法的属性值:

css
.button {
  color: var(--main-color);
  margin: var(--gap);
  font-size: var(--font-size);
}

支持兜底值:

css
color: var(--text-color, #333);

作用域

继承

自定义属性会继承。这意味着如果在一个给定的元素上,没有为这个自定义属性设置值,在其父元素上的值会被使用。

通常的最佳实践是定义在根伪类 :root 下,这样就可以在 HTML 文档的任何地方访问到它了

就近原则

子元素优先使用最近定义的变量。

css
:root {
  --color: red;
}

.box {
  --color: blue;
}

.box .item {
  color: var(--color); /* blue */
}