当前位置: 首页 > news >正文

css实现一键换肤

        实现一键换肤的时候,我们除了动态替换引用的css文件,还可以通过使用css变量的方式,达到所需效果。

        首先我们来了解css变量,css变量以--开头,引用时va(--变量名),例

:root{
    --default-color: #fff;
}
.box{
    background-color: var(--default-color);
}

        :root指向文档根元素,可用来配置全局变量,而我们可以通过修改变量的值,来实现修改样式。

        一种方式是直接修改变量值,这种方式需要在setProperty时将所有变量都设置一遍。

document.documentElement.style.setProperty('--default-color', '#f00');

        另一种方式是在css中将每一套变量的值罗列出来,在:root上添加自定义属性,js通过修改自定义属性的值修改css的引用值

        css

:root{
    --default-color: #fff;
}
:root[theme="black"]{
    --default-color: #000;
}

        js

document.documentElement.setAttribute('theme', "black");
localStorage.setItem('theme', "black"); // 在缓存中存入theme的值,方便下次进入页面的时候主题与上一次一致

        第二种方式较第一种的优势是,不需要在js中修改那么多的变量,如果主题样式也特别多的话,js的方式比较麻烦,而且第二种更方便存储到缓存中,以便后续直接应用

http://www.dtcms.com/a/133244.html

相关文章:

  • 入门-C编程基础部分:1、环境搭建
  • MySQL 超详细安装教程与常见问题解决方案
  • 优先级队列(堆二叉树)底层的实现:
  • 十四、C++速通秘籍—函数式编程
  • JAVA EE_文件操作和IO
  • 蓝桥杯 web 常考到的一些知识点
  • OpenCV 图形API(33)图像滤波-----高斯模糊函数gaussianBlur()
  • 3D版的VLA:从3D VLA、SpatialVLA到PointVLA——3D点云版的DexVLA,在动作专家中加入3D数据
  • 人工智能100问☞第4问:人工智能与机器学习、深度学习的区别?
  • Matplotlib库详解
  • 网页防篡改与盗链防护:实时监控与自动化修复实践
  • python中,sort(reverse=True)与列表.reverse的区别
  • 【集成电路版图设计学习笔记】2. 基本绘制的layer层和电路失效机制
  • ubuntu22.04安装zabbix7.0
  • ubuntu学习day2
  • 机器学习核心知识:从基础概念到关键算法
  • 高性能IO的基石:零拷贝(Zero-Copy)技术全解析
  • 云渗透一(云租户渗透⼊⻔)
  • IO模式精讲总结
  • ARM处理器程序烧写方式
  • PCB设计整板铺铜说明
  • 文件编码并转成 UTF-8
  • 同构应用开发
  • Vue--组件练习案例
  • 【ROS2】行为树 BehaviorTree(三):异步操作
  • 007.Gitlab CICD缓存与附件
  • 基于SSM框架的校园食堂小程序设计与实现
  • 基于springboot的“嗨玩旅游网站”的设计与实现(源码+数据库+文档+PPT)
  • # Unity动画控制核心:Animator状态机与C#脚本实战指南 (Day 29)
  • AT_abc400_e [ABC400E] Ringo‘s Favorite Numbers 3 题解