前端实现界面切换主题

这篇具有很好参考价值的文章主要介绍了前端实现界面切换主题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

▷ 样式切换主题

  • 常用的主题切换实现方式之一,就是通过 link 标签的 rel 属性来实现的
  • rel 标签的值是 alternate,就代表该样式是可以替换的
  • title 属性要加就全加上或者全不加,因为 title 会导致系统直接识别成样式文件,意思就是如果两个样式文件,第一个没有加该属性,第二个加了该属性,系统会直接使用有该属性的样式进行载入
  • 假如此时页面有三个样式文件,分别是:default.cssdark.csslight.css
  • 可以通过激活可替换样式即可实现主题的切换,适合确定的主题样式之间切换
/* default.css */
body {
    background-color: white;
}

/* dark.css */
body {
    background-color: black;
}

/* light.css */
body {
    background-color: lightcyan;
}
<!DOCTYPE html>
<html lang="en" class="dark">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>主题切换方案一</title>
    <link type="text/css" href="css/default.css" rel="stylesheet" title="default">
    <link type="text/css" href="css/dark.css" rel="stylesheet alternate" title="dark">
    <link type="text/css" href="css/light.css" rel="stylesheet alternate" title="light">
</head>

<body>
    <select name="主题" onchange="changeTheme(this.value)">
        <option value="default">默认</option>
        <option value="dark">夜晚</option>
        <option value="light">白天</option>
    </select>
</body>

<script src="static/js/jquery.min.js"></script>
<script>
    function changeTheme(theme) {
        $('link').attr('disabled', true)
        $(`link[title=${theme}]`).attr('disabled', false)
    }
</script>

</html>

前端实现界面切换主题,《一文让你搞懂系列》,前端,经验分享,html,css,javascript

▷ 变量设置主题

  • 上面是主题样式文件之间的切换,对于那些在拾色器中任意选择颜色更换主题的就不大适用了
  • 这时候切换主题更适合通过变量去设置系统的主题
  • 现在 :root 中定义全局变量,然后通过 var() 在样式中去使用变量,然后通过去 setProperty 修改该变量值即可更换主题样式了
<!DOCTYPE html>
<html lang="en" class="dark">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>主题切换方案二</title>
    <style>
        :root {
            --theme-color: #333333;
        }

        html {
            background-color: var(--theme-color, "#E65A65");
        }
    </style>
</head>

<body>
    <select name="主题" onchange="changeTheme(this.value)">
        <option value="#333333">默认</option>
        <option value="#1a7efc">蓝色</option>
        <option value="#16d46b">绿色</option>
        <option value="#f1ce6b">黄色</option>
    </select>
</body>

<script>
    function changeTheme(theme) {
        document.documentElement.style.setProperty('--theme-color', theme)
    }
</script>

</html>

前端实现界面切换主题,《一文让你搞懂系列》,前端,经验分享,html,css,javascript文章来源地址https://www.toymoban.com/news/detail-714257.html

到了这里,关于前端实现界面切换主题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C标准库】详解fopen函数 一篇让你搞懂fopen函数

    创作不易,感谢支持! ‾ underline{创作不易,感谢支持! } 创作不易,感谢支持! ​ fopen函数 头文件:stdio.h 功能是打开一个文件,其声明格式是: 文件指针名 = fopen(文件名,使用文件方式) “文件名”是被打开文件的文件名,类型是C风格字符串。 “使用文件方式”是指文

    2024年02月03日
    浏览(28)
  • Android 动态分区详解(一) 5 张图让你搞懂动态分区原理

    本文主要包含动态分区的物理数据布局,内存核心数据结构和动态分区映射示例 3 个部分。 如果你对动态分区没啥概念,建议直接从头阅读 如果只关心动态分区在设备上是如何存储的,请跳转到第 3 节 如果只关心动态分区在内存中的数据结构,请跳转到第 4 节 如果想看动态

    2023年04月08日
    浏览(33)
  • 一篇文章让你搞懂TypeScript中的typeof()、keyof()是什么意思

    知识专栏 专栏链接 TypeScript知识专栏 https://blog.csdn.net/xsl_hr/category_12030346.html?spm=1001.2014.3001.5482 有关TypeScript的相关知识可以前往TypeScript知识专栏查看复习!! 最近在 前端的深入学习过程 中,接触了与 网络请求 相关的内容,于是计划用三个专栏( HTTP 、 Axios 、 Ajax )和零碎

    2023年04月21日
    浏览(47)
  • Nginx配置详解,一文带你搞懂Nginx

    1 基本概念 1.1 Nginx简介 Nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现好。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支

    2024年01月16日
    浏览(35)
  • 一文带你搞懂sklearn.metrics混淆矩阵

    一般的二分类任务需要的评价指标有4个 accuracy precision recall f1-score 四个指标的计算公式如下   计算这些指标要涉及到下面这四个概念,而它们又构成了混淆矩阵 TP (True Positive) FP (False Positive) TN (True Negative) FN (False Negative) 混淆矩阵 预测值 0 1 实际值 0 TN FP 1 FN TP 这里我给出的

    2024年02月06日
    浏览(29)
  • C/S、B/S架构详解,一文带你搞懂

      CS架构(Client-Server Architecture)是一种分布式计算模型,其中客户端和服务器之间通过网络进行通信。在这种架构中,客户端负责向服务器发送请求,并接收服务器返回的响应。服务器则负责处理客户端的请求,并返回相应的结果。CS架构通常用于构建大型的网络应用程序,

    2024年02月16日
    浏览(76)
  • 一文带你搞懂PyTorch中所有模型查看的函数model.modules()系列

    model一般继承nn.Model 他的实例一般具有几个有序 字典 , _modules,_parameters,_buffers,表示当前model的子模块,自己注册的parameters和buffers 注意,_modules字典keys对应子模块名字,value对应子模块的实例,所以可以迭代的调用子模块的子模块,比如下面两个函数 因为是字典,所以可

    2024年02月06日
    浏览(31)
  • 【MDX】一文带你搞懂SQL Server Analysis Services 的安装和使用

    目录 Step 1: Install developer and management tools 安装 new stand-alone SQL Server installation or add the feature to an existing installation 安装 SQL Server Management Studio 安装 SSDT 安装 Visual Studio Step 2: Install databases Step 3: Install projects Step 4: 创建项目 Step 5: 定义数据源 Step 6: 部署Analysis Services项目 Step 7: F

    2023年04月08日
    浏览(40)
  • 【微信小程序】一文带你搞懂小程序的页面配置和网络数据请求

    每个小程序页面都有一个 .json 文件,该文件用来对小程序的页面进行配置。 小程序中,每个页面都有自己的.json配置文件,用来对当前页面的窗口外观、页面效果等进行配置。 小程序中,app.json中的 window 节点,可以全局配置小程序中 每个页面 的窗口表现。 如:当在app.js

    2024年02月02日
    浏览(33)
  • 一篇文章带你搞懂前端Cookie

    浏览器Cookie相信各位点进这篇文章的小伙伴应该不陌生了,它是前端领域中一个非常重要的内容,当然也是面试的一个考点,不知道各位小伙伴是否真正掌握了Cookie呢?当然没有掌握也是没有关系的,可以跟着小编的脚步一起来学习一下前端Cookie,没有熟练掌握的小伙伴看完这

    2024年02月04日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包