javascript - 我可以在 JavaScript 中更改 CSS 属性的值吗?
问题描述
我的网站需要颜色主题。所以我打算做的是在 CSS 中创建一个类,
#box {
width: 500px;
height: 300px;
}
.color1 {
background-color: rgb(105, 105, 105);
}
将其应用于我的 HTML div 元素,
<div class="color1" id="box">
<button id="darkModeButton">Dark Mode</button>
</div>
<div class="color1">
</div>
<div class="color1">
</div>
然后当单击按钮时,更改所有具有类 color1 的元素的颜色,
var darkModeButton = document.querySelector("#darkModeButton");
darkModeButton.onclick = function() {
//something like this:
color1.backgroundColor = "rgb(55, 55, 55)";
//but obiviously this doesn't work so how can i fix this
}
解决方案
只需在 body 上切换一个类并使用不同的 CSS 规则。
var darkModeButton = document.querySelector("#darkModeButton");
darkModeButton.addEventListener("click", function() {
document.body.classList.toggle("darkmode");
});
#box {
width: 500px;
height: 300px;
}
.color1 {
background-color: rgb(105, 105, 105);
}
.darkmode .color1 {
background-color: black;
}
<div class="color1" id="box">
<button id="darkModeButton">Dark Mode</button>
</div>
<div class="color1">
</div>
<div class="color1">
</div>
推荐阅读
- google-cloud-datalab - 我无法在 Google Cloud Datalab 上使用“云翻译 API”
- visual-studio - 在 Visual Studio 的拆分窗口中打开已在另一个窗口中打开的文件
- reactjs - 外部化 react 和 react-dom 依赖项是否会增加反应应用程序的加载时间
- spring-boot - spring boot 如何分别为管理员和用户配置安全性
- c# - 从 C# 中的文件开头写入二进制文件块
- zapier - Zapier API 配置:发送表单数据而不是 json 请求正文
- angular - 找不到“AppServerModule”的 NgModule 元数据
- android - Android TabLayout + ViewPager2 更改选项卡而不加载其间的所有选项卡
- date - 在 Chart.js 中设置 xAxes 标签以格式化 YYYY-MM-DD HH:mm:ss
- python - 在 Python 中使用 Fernet 的快速实现