javascript - 如何使用按钮或开关更改整个 css 文件?
问题描述
假设我有 2 个样式表, dark.css 和 light.css 。我想让用户在主页中的这两个主题之间切换,并将其设置为其他页面的默认设置。我的网站还包含许多其他 css 文件,这两个主题几乎相同(否则会出现问题!!)
解决方案
我们不应该css
为了做这些事情而切换或卸载文件。最好切换一个类html
或body
元素。
例如 - 首先加载两个css
样式文件。然后对于dark.css
,将所有样式包装在根类下dark
,如下所示 -
.dark .style1{
...
}
.dark .style2{
...
}
相同的light.css
.light .style1{
...
}
.light .style2{
...
}
body
然后使用下面的 JavaScript切换标签的类-
<button id="dark">Dark theme</button>
<button id="light">Light theme</button>
let body = document.body;
let darkBtn = document.getElementById('dark');
let lightBtn = document.getElementById('light');
darkBtn.addEventListener('click', () => {
body.classList.remove('light');
body.classList.add('dark');
});
lightBtn.addEventListener('click', () => {
body.classList.remove('dark');
body.classList.add('light');
});
现场直播 - https://jsitor.com/3xKxgP8Ow
推荐阅读
- java - 如何解决“无法解析导入 org.mockito”?
- excel - 用于填充工作表的 VBA 循环
- objective-c - 如何在 iOS 上使用 Objective-C 创建 TCP IP 服务器
- c++ - 我需要比较 2 个字符串中的内容
- mariadb - 从同一个表中删除相同的记录会导致死锁
- python - 使用 Python 将 word 文件中的多个表提取到 Excel 文件
- r - R:如何将 rlangs .data 功能与 magrittrs 管道点结合使用?
- bash - 使用 bash 通过具有特定尺寸和位置的终端打开 google chrome
- c# - 试图在响应中隐藏一个属性,但仍然获得它的子属性
- arduino - Wemos D1 R2 板无法连接到 wifi 超过 10 秒