vue 切换主题色切换主题色切换主题色切换主题色切换主题色

第一种:使用CSS变量

CSS变量(Custom Properties)是CSS的一种新特性

1.实现需求:自定义颜色

在这里插入图片描述

  1. 定义变量
    全局的theme.css
:root {--primary-color:red;
}
  1. 在组件中使用这些变量
    demo.vue
<template><div class="main"><!-- 修改主题色 --><div class="router-header"><span>主题色</span><el-color-picker v-model="theme"></el-color-picker></div></div>
</template>
<script >
export default {data() {return {theme: "#409EFF",};},watch: {//监听颜色变化,赋值修改主题色theme(val) {// let root = document.querySelector(":root");// root.style.setProperty("--primary-color", val);//或者下面直接修改也可以document.documentElement.style.setProperty("--primary-color", val);},},
};
</script>
<style lang='less'>
.main {//css中使用主题色background: var(--primary-color);
}
</style>

2.实现需求:切换深浅主题色

在这里插入图片描述

  • theme.css
:root[theme="light"] {--primary-color:rgb(76, 34, 228);
}
:root[theme="dark"] {--primary-color: rgb(242, 86, 8);
}
  • main.js中引入theme.css
import './pages/theme.css'
  • vue中使用
<template><div class="main"><!-- 修改主题色 --><div class="router-header"><span>主题色</span><el-switchv-model="isDarkTheme"active-text="深色皮肤"inactive-text="浅色皮肤"></el-switch></div></div>
</template>
<script >
export default {data() {return {isDarkTheme: true,};},watch: {isDarkTheme(val) {// 切颜色window.document.documentElement.setAttribute("theme",this.isDarkTheme ? "dark" : "light");},},
};
</script>
<style lang='less'>
.main {background: var(--primary-color);
}
</style>

3.优缺点分析

  1. 优点:
  • 简单易用:CSS变量使用和更改都很方便。
  • 性能高效:只需更改变量值,无需重新加载样式表。
  • 兼容性好:适用于各种CSS预处理器,如Sass、Less等。
  1. 缺点:
  • 浏览器兼容性:旧版浏览器(如IE)不支持CSS变量。
  • 维护成本:对于大型项目,需要维护大量的变量,可能导致变量命名冲突和管理困难。

第二种:引入不同的CSS文件实现主题切换

在这里插入图片描述

1.实现步骤

深色主题和浅色主题,根据变量标识,切换最顶层类名

<template><div class="main" :class="isDarkTheme ? 'dark-theme' : 'light-theme'"><!-- 修改主题色 --><div class="router-header"><span>主题色</span><el-switchv-model="isDarkTheme"active-text="深色皮肤"inactive-text="浅色皮肤"></el-switch></div></div>
</template>
<script >
export default {data() {return {isDarkTheme: true,};},
};
</script>
<style lang='less'>
.main {//所有的深色主题的样式都写这儿&.dark-theme {background: #caeae8;}//所有的浅色主题的样式都写这儿&.light-theme {background: pink;}
}
</style>

2.优缺点分析

  1. 优点:
  • 实现简单:只需切换样式文件,不需要复杂的逻辑。
  • 适应性广:适用于所有前端框架和纯HTML项目。
  1. 缺点:
  • 性能开销:每次切换都需要重新加载CSS文件,可能导致页面闪烁。
  • 维护成本:需要维护多套完整的CSS文件,代码重复度高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3223563.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Adversarial Reweighting for Partial Domain Adaptation(论文阅读)

摘要 1、问题 通过实验发现如今的PDA方法在利用重新调整对齐分布来使适应特征对于源域数据的“噪声”权重&#xff0c;在很多挑战基准测试点上会导致域的负迁移。 2、目的 对抗性调整&#xff08;AR&#xff09;方法&#xff1a;对抗性学习源域数据的权重去对齐源域和目标域的…

SVM - 径向基函数核 Radial Basis Function Kernel,简称RBF核或者高斯核

SVM - 径向基函数核 Radial Basis Function Kernel&#xff0c;简称RBF核或者高斯核 flyfish 径向基函数核&#xff08;Radial Basis Function Kernel&#xff0c;简称RBF核&#xff09;&#xff0c;也称为高斯核&#xff0c;是一种常用的核函数&#xff0c;用于支持向量机&a…

计算理论复习

1.Turing Machine 确定性图灵机 图灵机有很多不同的定义&#xff0c;这里选取其中一种&#xff0c;其它定义下的图灵机往往与下面这种定义的图灵机计算能力等价。 图灵机是一个在一条可双向无限延伸且被划分为若干格子的纸带上进行操作的机器&#xff0c;其有内部状态&#…

【高校科研前沿】中国农业大学姚晓闯老师等人在农林科学Top期刊发表长篇综述:深度学习在农田识别中的应用

文章简介 论文名称&#xff1a;Deep learning in cropland field identification: A review&#xff08;深度学习在农田识别中的应用&#xff1a;综述&#xff09; 第一作者及单位&#xff1a;Fan Xu&#xff08;中国农业大学土地科学与技术学院&#xff09; 通讯作者及单位&…

Linux:进程间通信(二.共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)

Linux&#xff1a;进程间通信&#xff08;二.共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量&#xff09; 上次结束了进程间通信一&#xff1a;Linux&#xff1a;进程间通信&#xff08;一.初识进程间通信、匿名管道与命名管道、共享内存&#xff09; 文章目录 …

HackTheBox--BoardLight

BoardLight 测试过程 1 信息收集 NMAP端口扫描 端口扫描开放 22、80 端口 80端口测试 # 添加 boardLight.htb 到hosts文件 echo "10.10.11.11 boardLight.htb" | sudo tee -a /etc/hosts检查网页源代码&#xff0c;发现 board.htb # 添加 board.htb 到 hosts 文…

大话光学原理:3.干涉与衍射

一、干涉 这是一束孤独的光&#xff0c;在真空的无垠中悄无声息地穿行。忽然&#xff0c;一堵高耸的墙壁挡住了它的去路&#xff0c;它别无选择&#xff0c;只能硬着头皮冲撞而去。在摸索中&#xff0c;它意外地发现墙壁上竟有两道孔隙&#xff0c;笔直而细长&#xff0c;宛如量…

图吧工具箱:装机爱好者必备工具合集

名人说:莫道谗言如浪深,莫言迁客似沙沉。 ——刘禹锡《浪淘沙》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、概述二、主要功能1、硬件检测2、测试与故障诊断三、使用方法四、总结很高兴你打开了这篇博客,更多好用的软件工具,请关注我、订阅专栏…

Python从0到100(三十五):beautifulsoup的学习

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

暴雨突袭不可不看!水浸传感器作用有这些

最近全国进入“看海”模式的新闻不断冲上热搜&#xff0c;深圳、长沙、郑州......多地遭受了暴雨突袭&#xff0c;不仅影响到了居民日常生活出行&#xff0c;更容易为机房、仓库、工厂等需要防水的场所带来漏水隐患。水浸传感器的作用是实时检测监测范围内是否有漏水发生&#…

Linux文件编程(打开/创建写入读取移动光标)

目录 一、如何在Linux下做开发 1.vi编辑器 2.gcc编译工具 3.常用指令 二、文件打开及创建 三、写入文件 四、读取文件 五、文件“光标”位置 一、如何在Linux下做开发 所谓文件编程&#xff0c;就是对文件进行操作&#xff0c;Linux的文件和Windows系统的文件大差不差…

基于变分模态分解和Cramer von Mises检验的一维信号降噪方法(MATLAB)

关于变分模态分解&#xff1a; 变分模态分解中为什么要各个模态估计的带宽之和最小&#xff1f; 因为VMD是个优化问题&#xff0c;VMD方法首先在时域构造一个共同优化的目标&#xff0c;该目标在所有成分完全重构原信号的约束下追求所有成分的带宽总和最小&#xff08;窄带假…

vue学习day02-Vue指令-v-html、v-show与v-if、v-else与v-else-if、v-on、v-bind、v-for、v-model

6、Vue指令 指令&#xff1a;带有v-前缀的特殊标签属性 &#xff08;1&#xff09;v-html 作用&#xff1a;设置元素的innerHTML 语法&#xff1a;v-html“表达式” 示例&#xff1a; 提供一个地址&#xff0c;这里是百度的地址&#xff0c;通过v-html渲染 结果&#xff…

深度整合全球资源,分贝通打造高效、合规的海外差旅管理平台

在全球化商业活动的背景下,中国企业出海已成为常态。然而,随着海外差旅市场的全面增长,企业在海外支出管理上面临诸多挑战。据2023年数据显示,分贝通出海差旅业务GMV同比增长高达500倍,这一增长背后隐藏着企业对于更省钱、更高效管控方式的迫切需求。 面对与日俱增的开支,企业开…

【实战场景】大文件解析入库的方案有哪些?

【实战场景】大文件解析入库的方案有哪些&#xff1f; 开篇词&#xff1a;干货篇&#xff1a;分块解析内存映射文件流式处理数据库集群处理分布式计算框架 总结篇&#xff1a;我是杰叔叔&#xff0c;一名沪漂的码农&#xff0c;下期再会&#xff01; 开篇词&#xff1a; 需求背…

品牌策划秘籍:掌握这些技巧,让你的品牌一炮而红!

作为一名文案策划老司机&#xff0c;这么多年了&#xff0c;总会有一些经验的&#xff0c;这里分享出来&#xff0c;希望能够帮助后来人少走弯路吧。 想要做好品牌和文案策划&#xff0c;首先得做好“侦查”工作。 深入市场&#xff0c;了解行业动态&#xff0c;研究竞争对手…

Cesium自定义着色器构件三角面片【闪烁】问题,但是一移动视角就闪烁

问题&#xff1a;已知各个顶点的坐标信息、颜色和索引信息&#xff0c;并自定义绘制三角面片。 但是绘制的三角面片随着视角稍微改动就会出现闪烁现象&#xff01;&#xff01;&#xff01;why? Cesium数据类型的精度问题&#xff0c;例如下面为了获取能接收到高精度坐标信息…

CTF php RCE(二)

0x04 php伪协议 这种我们是先看到了include才会想到&#xff0c;利用伪协议来外带文件内容&#xff0c;但是有些同学会问&#xff0c;我们怎么知道文件名是哪个&#xff0c;哪个文件名才是正确的&#xff0c;那么这里我们就得靠猜了 include函数 因为 include 是一个特殊的语…

3-7 使用深度学习解决温度即示数问题

3-7 使用深度学习解决温度即示数问题 直接上代码 %matplotlib inline import matplotlib.pyplot as plt import numpy as np import torch torch.set_printoptions(edgeitems2, linewidth75)设置Jupyter Notebook在单元格中内嵌显示图像&#xff0c;导入所需库并设置PyTorch的…

Argo CD入门、实战指南

1. Argo CD概述 1.1 什么是 Argo CD Argo CD 是针对 Kubernetes 的声明式 GitOps 持续交付工具。 1.2 为什么选择 Argo CD 应用程序定义、配置和环境应具有声明性并受版本控制。应用程序部署和生命周期管理应自动化、可审计且易于理解。 2. Argo CD基础知识 在有效使用 Ar…