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

主题切换方案

方案一

CSS :root 选择器匹配文档的根元素。在 HTML 文档中,根元素就是 <html> 标签

1、定义颜色变量

可在公共样式文件里面定义

:root {--primary-color: #007bff;  //定义颜色变量
}

2、使用 JavaScript 修改 CSS 变量

document.documentElement.style.setProperty('--primary-color', '#ff0000');

3、使用

页面的样式引用

.bgcolor{background: var(--primary-color);
}

方案二

1、利用body标签添加class类名

document.body.className = "classname"

或者

document.body.classList.add('my-class')

方案一方案二结合使用 

通过 :root 定义不同主题的颜色、字体等变量,然后利用 JavaScript 动态修改 :root 中变量的值,可以轻松实现网站的主题切换功能。例如,定义一个浅色主题和一个深色主题的变量

:root {--text-color: #333;--background-color: #f8f9fa;
}.dark-theme {--text-color: #f8f9fa;--background-color: #333;
}

在 JavaScript 中,通过添加或移除 dark - theme 类来切换主题:

const body = document.body;
const themeToggle = document.getElementById('theme-toggle');themeToggle.addEventListener('click', () => {body.classList.toggle('dark - theme');
});

响应式布局参考:

:root {--font-size-base: 16px;--margin - base: 10px;
}@media (min - width: 768px) {:root {--font - size - base: 18px;--margin - base: 20px;}
}@media (min - width: 1024px) {:root {--font - size - base: 20px;--margin - base: 30px;}
}

相关文章:

  • 智能手表项目风险评估与应对计划书
  • Linux程序设计--期末复习
  • 【ROS2】报错记录及对应解决方案
  • matlab提取脑电数据的五种频域特征指标数值
  • Jmeter元件 CSV Data Set Config详解
  • Python笔记:c++内嵌python,c++主窗口如何传递给脚本中的QDialog,使用的是pybind11
  • Java 框架配置自动化:告别冗长的 XML 与 YAML 文件
  • [Linux] vim及gcc工具
  • 本地部署小红书FireRedASR
  • Vue百日学习计划Day4-8——Gemini版
  • 基于javaweb的SpringBoot自习室预约系统设计与实现(源码+文档+部署讲解)
  • 算法题(146):最大子段和
  • Pass-the-Hash攻击原理与防御实战指南
  • Python × CARLA:如何在自动驾驶仿真世界里打造智能驾驶系统?
  • ElasticSearch深入解析(十二):聚合——分桶聚合、指标聚合、管道子聚合
  • 歌词滚动效果
  • Docker镜像操作全攻略:从查看、拉取到删除
  • Stable Diffusion WebUI 插件大全:功能详解与下载地址
  • 命令行快速上传文件到SFTP服务器(附参考示例)
  • 配置Spark环境
  • 马上评|这种“维权”已经不算薅羊毛,涉嫌犯罪了
  • 俄副外长:俄美两国将举行双边谈判
  • 北京航空航天大学首个海外创新研究院落户巴西
  • 香港根据《维护国家安全条例》订立附属法例
  • 上海国际电影节特设“今日亚洲”单元
  • 中方发布会:中美经贸高层会谈氛围是坦诚的、深入的、具有建设性的