Dark Mode Example
创作时间:
作者:
@小白创作中心
Dark Mode Example
引用
CSDN
1.
https://blog.csdn.net/weixin_61281255/article/details/139151586
暗黑模式(Dark Mode)是现代网页设计中的一个重要功能,它不仅能够提升用户的视觉体验,还能在低光环境下减少眼睛疲劳。本文将通过两个具体的代码示例,详细介绍如何使用CSS和JavaScript实现网页的暗黑模式切换功能。
暗黑模式
代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dark Mode Example</title>
<style>
body {
background-color: #ffffff;
color: #000000;
transition: background-color 0.3s, color 0.3s;
}
body.dark-mode {
background-color: #121212;
color: #ffffff;
}
</style>
</head>
<body>
<h1>Hello, World!</h1>
<button id="toggle-theme">Toggle Theme</button>
<script>
const toggleButton = document.getElementById('toggle-theme');
toggleButton.addEventListener('click', () => {
document.body.classList.toggle('dark-mode');
const isDarkMode = document.body.classList.contains('dark-mode');
localStorage.setItem('dark-mode', isDarkMode);
});
// Load the saved theme from localStorage
const savedTheme = localStorage.getItem('dark-mode');
if (savedTheme === 'true') {
document.body.classList.add('dark-mode');
}
</script>
</body>
</html>
通过JavaScript来动态切换暗黑模式和普通模式。使用localStorage保存用户的选择,以便用户刷新页面或重新访问时仍然保持其选择。
代码二
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dark Mode Example</title>
<style>
:root {
--background-color: #ffffff;
--text-color: #000000;
}
[data-theme="dark"] {
--background-color: #121212;
--text-color: #ffffff;
}
body {
background-color: var(--background-color);
color: var(--text-color);
transition: background-color 0.3s, color 0.3s;
}
</style>
</head>
<body>
<h1>Hello, World!</h1>
<button id="toggle-theme">Toggle Theme</button>
<script>
const toggleButton = document.getElementById('toggle-theme');
toggleButton.addEventListener('click', () => {
const currentTheme = document.documentElement.getAttribute('data-theme');
const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
document.documentElement.setAttribute('data-theme', newTheme);
localStorage.setItem('theme', newTheme);
});
// Load the saved theme from localStorage
const savedTheme = localStorage.getItem('theme');
if (savedTheme) {
document.documentElement.setAttribute('data-theme', savedTheme);
}
</script>
</body>
</html>
通过结合CSS变量和JavaScript,可以实现更灵活的主题切换,并使用CSS变量来管理颜色。
解释
当元素具有 data-theme="dark"
属性时,CSS变量的值会改变,背景颜色为深色(#121212
),文字颜色为白色(#ffffff
)。
data-theme
这个属性是需要在js那里定义的,只有定义之后才可以识别到。data-theme
是一个自定义HTML属性,用于存储与主题相关的信息。在你的例子中,它被用来指示当前的主题是“light”还是“dark”。CSS可以通过属性选择器 [attribute-name]
获取和应用特定属性值的样式。
data-theme
详细解释
- HTML中的
data-theme
属性:
data-theme="light"
:这是一个自定义数据属性,初始值为 “light”。- 当该属性的值为 “dark” 时,表示页面处于暗黑模式。
- CSS属性选择器:
[data-theme="dark"]
:这是一个CSS属性选择器,用于选择所有具有data-theme="dark"
属性的元素。- 当
data-theme="dark"
时,应用--background-color: #121212
和--text-color: #ffffff
。
- JavaScript的功能:
- 读取和设置
data-theme
属性:通过document.documentElement.setAttribute('data-theme', currentTheme)
来设置根元素的data-theme
属性。 - 切换主题:当按钮被点击时,读取当前的
data-theme
属性,切换其值,并更新到localStorage
中保存用户的选择。
热门推荐
中年男性再婚需做好四大心理准备
科学作息,告别熬夜伤身
冬季心血管疾病高发,熬夜更需警惕!
熬夜真的会伤肝!这些护肝方法请收好
冬季熬夜伤身,免疫力下降怎么办?
ST摩登1月14日起戴帽*ST,控股股东1亿元资金占用仍未解决
冬季艾叶泡脚全攻略:这样泡才能安全又养生
冬季艾叶泡脚正当时,科学使用功效更佳
数据库如何优化索引结构
警惕!“新版1000元人民币”是伪造,央行从未公告
原来睡得太早也影响寿命?50岁后更得注意,几点睡、睡多久才好?
爱因斯坦眼中的量子纠缠:从“鬼魅般的超距作用”到现代科学前沿
滑膜炎5大症状与5种治疗方案,早发现早治疗

针灸推拿中药,中医治疗滑膜炎有良方
随申办上线“退休一件事”功能,灵活就业人员足不出户就能办退休
甲流来袭,除了奥司他韦还有这些防治方案
甲流来袭,如何调整心态快速康复?
黄芪莲子粥:国医大师的养生秘诀
《某某恋爱日记》揭秘喜欢一个人的心理学
汇丰研究揭示女性理财困境,李筱懿新书提供解决方案
经济独立让女性更有选择权,自我提升让魅力倍增
转账支票这样填才合规:日期、金额、收款人信息全解析
哈尔滨以旧换新政策:激活消费的新引擎
一文读懂驾考退费政策:从标准到维权全流程
铁路退票新规:8天以上退票免手续费,线上操作更便捷
四步做好ERP系统数据权限设置,保障企业信息安全
抖杆子练习:提升太极拳实战能力的关键训练
周末Plus快闪游:上班族的春季赏花新选择
控制血压是关键,专家详解高血压如何预防脑出血
晚餐这样吃,告别失眠困扰:莲子黄花菜的功效与食谱