您现在的位置是:网站首页> 编程资料编程资料
CSS变量实现主题切换的方法_CSS教程_CSS_网页制作_
2021-09-10
971人已围观
简介 本文主要介绍了CSS变量实现主题切换的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
CSS 变量
基本用法
声明一个变量,属性名需要以两个减号(--)开始,属性值则可以是任何有效的CSS值。
element { --main-bg-color: brown; } 选择器是指定变量的可见作用域,该变量仅用于匹配当前选择器及其子孙,通常的最佳实践是定义在根伪类 :root 下,这样就可以在HTML文档的任何地方访问到它了。
:root { --main-bg-color: brown; } 使用一个局部变量时用 var() 函数包裹以表示一个合法的属性值:
element { background-color: var(--main-bg-color); } 备用值
用 var() 函数可以定义多个备用值(fallback value),当给定值未定义时将会用备用值替换
备用值并不是用于实现浏览器兼容性的。如果浏览器不支持CSS自定义属性,备用值也没什么用
color: var(--my-var, red); background-color: var(--my-var, var(--my-background, pink));
有效性
传统的CSS概念里,有效性和属性是绑定的,这对变量来说并不适用。当变量被解析,浏览器不知道它们什么时候会被使用,所以必须认为这些值都是有效的。
即便这些值是有效的,但当通过 var() 函数调用时,它在特定上下文环境下也可能不会奏效。属性和自定义变量会导致无效的CSS语句,这引入了一个新的概念:计算时有效性。
This paragraph is initial black.
:root { --text-color: 16px; } p { color: blue; } p { color: var(--text-color); } 浏览器将 --text-color 的值替换给了 var(--text-color),但是 16px 并不是 color 的合法属性值。代换之后,该属性不会产生任何作用。浏览器会执行如下两个步骤:
- 检查属性 color 是否为继承属性。是,但是
没有任何父元素定义了 color 属性。转到下一步。
- 将该值设置为它的默认初始值,black。
当CSS属性-值对中存在语法错误,该行则会被忽略。然而如果自定义属性(变量)的值无效,它并不会被忽略,从而会导致该值被覆盖为默认值。
JavaScript 中的值
// 获取一个 Dom 节点上的 CSS 变量 element.style.getPropertyValue("--my-var"); // MDN上给的,但获取一直是空的,其他两个倒是没问题 // 获取任意 Dom 节点上的 CSS 变量 getComputedStyle(element).getPropertyValue("--my-var"); // 修改一个 Dom 节点上的 CSS 变量 element.style.setProperty("--my-var", jsVar + 4); 主题切换
Document
到此这篇关于CSS变量实现主题切换的方法的文章就介绍到这了,更多相关CSS主题切换内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- 教你做个可爱的css滑动导航条_CSS教程_CSS_网页制作_
- css height属性中的calc方法详解_CSS教程_CSS_网页制作_
- 详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性_CSS教程_CSS_网页制作_
- 关于flex 上下文中自动 margin的问题(完整例子)_CSS教程_CSS_网页制作_
- web前端之css水平居中代码解析_CSS教程_CSS_网页制作_
- 使用css创建一个优惠券的方法_CSS教程_CSS_网页制作_
- CSS实现带箭头的提示框效果【示例代码】_CSS教程_CSS_网页制作_
- CSS实现标签效果的示例代码_CSS教程_CSS_网页制作_
- css3 响应式媒体查询的示例代码_css3_CSS_网页制作_
- 浅谈CSS 浏览器样式重置终结版_CSS教程_CSS_网页制作_
