CSS 覆盖变量

用局部变量覆盖全局变量

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

请看上一页中的例子:

实例

  1. :root {
  2. --blue: #1e90ff;
  3. --white: #ffffff;
  4. }
  5. body {
  6. background-color: var(--blue);
  7. }
  8. h2 {
  9. border-bottom: 2px solid var(--blue);
  10. }
  11. .container {
  12. color: var(--blue);
  13. background-color: var(--white);
  14. padding: 15px;
  15. }
  16. button {
  17. background-color: var(--white);
  18. color: var(--blue);
  19. border: 1px solid var(--blue);
  20. padding: 5px;
  21. }

css3_var.htm

有时,我们希望变量仅在页面的特定部分中进行更改。

假设我们想要按钮元素使用不同的蓝色。那么,我们可以在 button 选择器内重新声明 —blue 变量。当我们在这个选择器中使用 var(—blue) 时,它将使用此处声明的局部 —blue 变量值。

我们看到局部的 —blue 变量会覆盖 button 元素的全局 —blue 变量:

实例

  1. :root {
  2. --blue: #1e90ff;
  3. --white: #ffffff;
  4. }
  5. body {
  6. background-color: var(--blue);
  7. }
  8. h2 {
  9. border-bottom: 2px solid var(--blue);
  10. }
  11. .container {
  12. color: var(--blue);
  13. background-color: var(--white);
  14. padding: 15px;
  15. }
  16. button {
  17. --blue: #0000ff;
  18. background-color: var(--white);
  19. color: var(--blue);
  20. border: 1px solid var(--blue);
  21. padding: 5px;
  22. }

css3_var_override.htm

添加一个新的局部变量

如果只在一个地方使用一个变量,我们也可以声明一个新的局部变量,就像这样:

实例

  1. :root {
  2. --blue: #1e90ff;
  3. --white: #ffffff;
  4. }
  5. body {
  6. background-color: var(--blue);
  7. }
  8. h2 {
  9. border-bottom: 2px solid var(--blue);
  10. }
  11. .container {
  12. color: var(--blue);
  13. background-color: var(--white);
  14. padding: 15px;
  15. }
  16. button {
  17. --button-blue: #0000ff;
  18. background-color: var(--white);
  19. color: var(--button-blue);
  20. border: 1px solid var(--button-blue);
  21. padding: 5px;
  22. }

css3_var_local.htm

浏览器支持

表格中的数字注明了完全支持该属性的首个浏览器版本。

函数 Chrome Internet Explorer_Edge Firefox Safari Opera
var() 49.0 15.0 31.0 9.1 36.0

CSS var() 函数

函数 描述
var() 插入 CSS 变量的值。