CSS3原生变量摘要

70 阅读1分钟

兼容情况查看:点击查看

定义变量方法如下,很简单,注意变量名是大小写敏感的

element {
  --main-bg-color: brown;
}

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

注意,规则集所指定的选择器定义了自定义属性的可见作用域。通常的最佳实践是定义在根伪类 :root 下,这样就可以在 HTML 文档的任何地方访问到它了

这个也很好理解,变量只在选择器范围内生效,而且变量的优先级关系也和选择器差不多

在使用变量时方法如下

element {
  background-color: var(--main-bg-color);
}

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

同时变量是可以被js动态修改的

// 获取一个 Dom 节点上的 CSS 变量
element.style.getPropertyValue("--my-var");

// 获取任意 Dom 节点上的 CSS 变量
getComputedStyle(element).getPropertyValue("--my-var");

// 修改一个 Dom 节点上的 CSS 变量
element.style.setProperty("--my-var", jsVar + 4);

用 var() 函数可以定义多个备用值(fallback value),当给定值未定义时将会用备用值替换

.two {
  color: var(--my-var, red); /* Red if --my-var is not defined */
}

.three {
  background-color: var(--my-var, var(--my-background, pink)); /* pink if --my-var and --my-background are not defined */
}

.three {
  background-color: var(--my-var, --my-background, pink); /* Invalid: "--my-background, pink" */
}

详情见MDN:developer.mozilla.org/zh-CN/docs/…