javascript - (深色模式)添加 "dark-theme"后如何改变背景?

标签 javascript html css button

所以我的网站上有一个按钮可以切换暗模式。我在检查中看到切换正在工作,但出于某种原因,没有看到#content .dark-theme。我以为 child 优先。

HTML

<!-- Main Content -->
  <div id="content">

CSS

    #content {
    background: rgb(248, 201, 201);
    color: black;
}

#content .dark-theme {
    background: rgb(49, 51, 71);
    color: white;
}

JS

document.getElementById('change-theme-btn').addEventListener('click', function () {
content.classList.toggle('dark-theme');

});

最佳答案

您应该使用#content.dark-theme 来正确定位您需要的元素;在这里您可以看到它的实际效果。

在 CSS 中,当您编写:#content .dark-theme 时,您正在尝试使用作为元素子元素的 dark-theme 类来定位元素带有一个 id content

在您的情况下,您想要定位的是元素 #content 本身;所以你应该写:#content.dark-theme 或者只是#content;有了这个,你的目标元素 #content 也有一个类 dark-theme

document.getElementById('change-theme-btn').onclick = function() {
  content.classList.toggle('dark-theme');
}
#content {
  background: rgb(248, 201, 201);
  color: black;
  height: 150px;
}

#content.dark-theme {
  background: rgb(49, 51, 71);
  color: white;
}
<div id="content">
  This is content
</div>
<button id="change-theme-btn">Change</button>

关于javascript - (深色模式)添加 "dark-theme"后如何改变背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55191787/

相关文章:

javascript - 如何使用 Jquery 使元素出现和消失。

javascript - 在 C# 中定义 session 变量从 javascript 获取它

javascript - 访问数组内对象的属性 Javascript AngularJS

HTML5 语音输入麦克风访问

html - 严格的 2 列布局与元素跨越多列的 12 列相比有哪些优势?

css - 在没有媒体查询的情况下,可以使用 css grid 和 flexbox 实现响应式页面布局吗?

javascript - Jest - Jest 遇到了意外的 token 。 Vanilla JS

javascript - React 有没有从 js 到 jsx 的编译器?

jquery - 具有只读和可编辑部分的 HTML5 文本控件

css - 当 div 设置其父级的高度时,使 div 成为其容器的 100%