CSS 覆盖变量


用局部变量覆盖全局变量

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

请看上一页中的例子:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. :root {
  6. --blue: #1e90ff;
  7. --white: #ffffff;
  8. }
  9. body {
  10. background-color: var(--blue);
  11. }
  12. h2 {
  13. border-bottom: 2px solid var(--blue);
  14. }
  15. .container {
  16. color: var(--blue);
  17. background-color: var(--white);
  18. padding: 15px;
  19. }
  20. button {
  21. background-color: var(--white);
  22. color: var(--blue);
  23. border: 1px solid var(--blue);
  24. padding: 5px;
  25. }
  26. </style>
  27. </head>
  28. <body>
  29. <h1>使用 var() 函数</h1>
  30. <div class="container">
  31. <h2>欢迎来到成都!</h2>
  32. <p>成都,是四川省省会、副省级市、特大城市、成渝地区双城经济圈核心城市,国务院批复确定的中国西部地区重要的中心城市,国家重要的高新技术产业基地、商贸物流中心和综合交通枢纽。</p>
  33. <p>成都地处中国西南地区,属亚热带季风性湿润气候,自古有“天府之国”的美誉。</p>
  34. <p>
  35. <button></button>
  36. <button></button>
  37. </p>
  38. </div>
  39. </body>
  40. </html>

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

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

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

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. :root {
  6. --blue: #1e90ff;
  7. --white: #ffffff;
  8. }
  9. body {
  10. background-color: var(--blue);
  11. }
  12. h2 {
  13. border-bottom: 2px solid var(--blue);
  14. }
  15. .container {
  16. color: var(--blue);
  17. background-color: var(--white);
  18. padding: 15px;
  19. }
  20. button {
  21. --blue: #0000ff;
  22. background-color: var(--white);
  23. color: var(--blue);
  24. border: 1px solid var(--blue);
  25. padding: 5px;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <h1>用局部变量覆盖全局变量</h1>
  31. <div class="container">
  32. <h2>欢迎来到成都!</h2>
  33. <p>成都,是四川省省会、副省级市、特大城市、成渝地区双城经济圈核心城市,国务院批复确定的中国西部地区重要的中心城市,国家重要的高新技术产业基地、商贸物流中心和综合交通枢纽。</p>
  34. <p>成都地处中国西南地区,属亚热带季风性湿润气候,自古有“天府之国”的美誉。</p>
  35. <p>
  36. <button></button>
  37. <button></button>
  38. </p>
  39. </div>
  40. </body>
  41. </html>

添加一个新的局部变量

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

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. :root {
  6. --blue: #1e90ff;
  7. --white: #ffffff;
  8. }
  9. body {
  10. background-color: var(--blue);
  11. }
  12. h2 {
  13. border-bottom: 2px solid var(--blue);
  14. }
  15. .container {
  16. color: var(--blue);
  17. background-color: var(--white);
  18. padding: 15px;
  19. }
  20. button {
  21. --button-blue: #0000ff;
  22. background-color: var(--white);
  23. color: var(--button-blue);
  24. border: 1px solid var(--button-blue);
  25. padding: 5px;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <h1>新的局部变量</h1>
  31. <div class="container">
  32. <h2>欢迎来到成都!</h2>
  33. <p>成都,是四川省省会、副省级市、特大城市、成渝地区双城经济圈核心城市,国务院批复确定的中国西部地区重要的中心城市,国家重要的高新技术产业基地、商贸物流中心和综合交通枢纽。</p>
  34. <p>成都地处中国西南地区,属亚热带季风性湿润气候,自古有“天府之国”的美誉。</p>
  35. <p>
  36. <button></button>
  37. <button></button>
  38. </p>
  39. </div>
  40. </body>
  41. </html>

浏览器支持

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

函数
var()49.015.031.09.136.0

CSS var() 函数

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

分类导航