CSS 覆盖变量 详解
css3基础 2022-05-23 12:08:2314小码哥的IT人生shichen
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; }
完整实例【亲自试一试】:
<!DOCTYPE html> <html> <head> <style> :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; } </style> </head> <body> <h1>使用 var() 函数</h1> <div class="container"> <h2>Welcome to Shanghai!</h2> <p>Shanghai is one of the four direct-administered municipalities of the People's Republic of China.</p> <p>Shanghai is one of the four direct-administered municipalities of the People's Republic of China.</p> <p> <button>Yes</button> <button>No</button> </p> </div> </body> </html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
有时,我们希望变量仅在页面的特定部分中进行更改。
假设我们想要按钮元素使用不同的蓝色。那么,我们可以在 button 选择器内重新声明 --blue 变量。当我们在这个选择器中使用 var(--blue) 时,它将使用此处声明的局部 --blue 变量值。
我们看到局部的 --blue 变量会覆盖 button 元素的全局 --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; background-color: var(--white); color: var(--blue); border: 1px solid var(--blue); padding: 5px; }
完整实例【亲自试一试】:
<!DOCTYPE html> <html> <head> <style> :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; background-color: var(--white); color: var(--blue); border: 1px solid var(--blue); padding: 5px; } </style> </head> <body> <h1>用局部变量覆盖全局变量</h1> <div class="container"> <h2>Welcome to Shanghai!</h2> <p>Shanghai is one of the four direct-administered municipalities of the People's Republic of China.</p> <p>Shanghai is one of the four direct-administered municipalities of the People's Republic of China.</p> <p> <button>Yes</button> <button>No</button> </p> </div> </body> </html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
添加一个新的局部变量
如果只在一个地方使用一个变量,我们也可以声明一个新的局部变量,就像这样:
示例代码:
: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; background-color: var(--white); color: var(--button-blue); border: 1px solid var(--button-blue); padding: 5px; }
完整实例【亲自试一试】:
<!DOCTYPE html> <html> <head> <style> :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; background-color: var(--white); color: var(--button-blue); border: 1px solid var(--button-blue); padding: 5px; } </style> </head> <body> <h1>新的局部变量</h1> <div class="container"> <h2>Welcome to Shanghai!</h2> <p>Shanghai is one of the four direct-administered municipalities of the People's Republic of China.</p> <p>Shanghai is one of the four direct-administered municipalities of the People's Republic of China.</p> <p> <button>Yes</button> <button>No</button> </p> </div> </body> </html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
浏览器支持
表格中的数字注明了完全支持该属性的首个浏览器版本。
函数 | |||||
---|---|---|---|---|---|
var() | 49.0 | 15.0 | 31.0 | 9.1 | 36.0 |
CSS var() 函数
函数 | 描述 |
---|---|
var() | 插入 CSS 变量的值。 |