目录

CSS 覆盖变量


使用局部变量覆盖全局变量

从上一页我们了解到,全局变量可以在整个文档中访问/使用,而局部变量只能在声明它的选择器内部使用。

查看上一页的示例:

示例

:root {
  --blue: #1e90ff;
  --white: #ffffff;
}

body {
  background-color: var(--blue);
}

h2 {
  border-bottom: 2px solid var(--blue);
}

.container {
  color: var(--blue);
  background-color: var(--white);
  padding: 15px;
}

button {
  background-color: var(--white);
  color: var(--blue);
  border: 1px solid var(--blue);
  padding: 5px;
}
亲自试一试 »

有时我们希望变量仅在页面的特定部分发生变化。

假设我们想要按钮元素使用不同的蓝色。然后,我们可以在按钮选择器内重新声明 --blue 变量。当我们在此选择器中使用 var(--blue) 时,它将使用此处声明的本地 --blue 变量值。

我们看到局部 --blue 变量将覆盖按钮元素的全局 --blue 变量:

示例

:root {
  --blue: #1e90ff;
  --white: #ffffff;
}

body {
  background-color: var(--blue);
}

h2 {
  border-bottom: 2px solid var(--blue);
}

.container {
  color: var(--blue);
  background-color: var(--white);
  padding: 15px;
}

button {
  --blue: #0000ff; /* local variable will override global */
  background-color: var(--white);
  color: var(--blue);
  border: 1px solid var(--blue);
  padding: 5px;
}
亲自试一试 »


添加新的局部变量

如果一个变量只在一个地方使用,我们也可以声明一个新的局部变量,如下所示:

示例

:root {
  --blue: #1e90ff;
  --white: #ffffff;
}

body {
  background-color: var(--blue);
}

h2 {
  border-bottom: 2px solid var(--blue);
}

.container {
  color: var(--blue);
  background-color: var(--white);
  padding: 15px;
}

button {
  --button-blue: #0000ff; /* new local variable */
  background-color: var(--white);
  color: var(--button-blue);
  border: 1px solid var(--button-blue);
  padding: 5px;
}
亲自试一试 »

浏览器支持

表中的数字指定第一个完全支持的浏览器版本var()函数。

Function
var() 49.0 15.0 31.0 9.1 36.0

CSS var() 函数

Property Description
var() Inserts the value of a CSS variable