当前第2页 返回上一页
下面是一个例子。
1 2 3 4 5 | <style>
:root { -- color : blue ; }
p { -- color : green ; }
#alert { -- color : red ; }
* { color : var(--color); }</style><p>蓝色</p><p>绿色</p><p id= "alert" >红色</p>
|
上面代码中,三个选择器都声明了--color变量。不同元素读取这个变量的时候,会采用优先级最高的规则,因此三段文字的颜色是不一样的。
这就是说,变量的作用域就是它所在的选择器的有效范围。
1 2 3 4 5 6 7 | body {
--foo: #7F583F ;
}
.content {
--bar: #F7EFD2 ;
}
|
上面代码中,变量--foo的作用域是body选择器的生效范围,--bar的作用域是.content选择器的生效范围。
由于这个原因,全局的变量通常放在根元素:root里面,确保任何选择器都可以读取它们。
1 2 3 | :root {
--main- color : #06c ;
}
|
五、响应式布局
CSS 是动态的,页面的任何变化,都会导致采用的规则变化。
利用这个特点,可以在响应式布局的media命令里面声明变量,使得不同的屏幕宽度有不同的变量值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | body {
--primary: #7F583F ;
--secondary: #F7EFD2 ;
}
a {
color : var(--primary);
text-decoration- color : var(--secondary);
}
@media screen and ( min-width : 768px ) {
body {
--primary: #F7EFD2 ;
--secondary: #7F583F ;
}
}
|
六、兼容性处理
对于不支持 CSS 变量的浏览器,可以采用下面的写法。
1 2 3 4 | a {
color : #7F583F ;
color : var(--primary);
}
|
也可以使用@support
命令进行检测。
1 2 3 4 5 6 | @supports ( (--a: 0 )) {
}
@supports ( not (--a: 0 )) {
}
|
七、JavaScript 操作
JavaScript 也可以检测浏览器是否支持 CSS 变量。
1 2 3 4 5 6 7 8 9 10 | const isSupported =
window.CSS &&
window.CSS.supports &&
window.CSS.supports( '--a' , 0 );
if (isSupported) {
} else {
}
|
JavaScript 操作 CSS 变量的写法如下。
1 2 3 4 5 6 7 8 9 | // 设置变量
document.body.style.setProperty( '--primary' , '#7F583F' );
// 读取变量
document.body.style.getPropertyValue( '--primary' ).trim();
// '#7F583F'
// 删除变量
document.body.style.removeProperty( '--primary' );
|
这意味着,JavaScript 可以将任意值存入样式表。下面是一个监听事件的例子,事件信息被存入 CSS 变量。
1 2 3 4 5 6 | const docStyle = document.documentElement.style;
document.addEventListener( 'mousemove' , (e) => {
docStyle.setProperty( '--mouse-x' , e.clientX);
docStyle.setProperty( '--mouse-y' , e.clientY);
});
|
那些对 CSS 无用的信息,也可以放入 CSS 变量。
1 | --foo: if(x > 5 ) this.width = 10 ;
|
上面代码中,--foo
的值在 CSS 里面是无效语句,但是可以被 JavaScript 读取。这意味着,可以把样式设置写在 CSS 变量中,让 JavaScript 读取。
所以,CSS 变量提供了 JavaScript 与 CSS 通信的一种途径。
以上就是CSS中变量的的用法介绍(附示例)的详细内容,更多文章请关注木庄网络博客!
返回前面的内容
相关阅读 >>
css list-style-image属性怎么用
css如何实现字体长阴影效果
css篇:如何将页面背景设置渐变效果(代码详解)
css怎么实现两张图片叠加在一起
css定义背景图为什么显示不了
怎么解决css文件乱码问题
css word-spacing属性怎么用?
css >什么选择器
波浪的边框css怎么实现
纯 css 如何实现鼠标跟随效果?(代码详解)
更多相关阅读请进入《css》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » CSS中变量的的用法介绍(附示例)