Dark Mode Example
创作时间:
作者:
@小白创作中心
Dark Mode Example
引用
CSDN
1.
https://blog.csdn.net/weixin_61281255/article/details/139151586
暗黑模式已成为现代网页设计中的常见功能,它不仅能够提升用户体验,还能在低光环境下保护用户视力。本文将通过两个具体的代码示例,详细介绍如何使用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属性详解
当元素具有data-theme="dark"
属性时,CSS变量的值会改变,背景颜色为深色(#121212
),文字颜色为白色(#ffffff
)。
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
中保存用户的选择。
热门推荐
到发旅客63万人次!大理站客流高峰仍在持续
INFJ 与 INTJ 的区别:感知思维等方面对比
伍柳丹法之传承与发展
小学三年级数学辅导三角形的知识点大全
一篇文章讲清楚API是什么?电商API是什么?
骨科医生科普:半月板损伤,到底怎么治?
血战香积寺:4个时辰伤亡十三万人,唐朝最血腥、惨烈的续命之战
大厂校招的潮涌与暗流:重金押注AI、拼向海外
买房必看!户型图里藏着这些秘密,你真的会解读吗?
血型奥秘:O型父母与子女的血型关系
研究揭示:长期服用阿司匹林患者使用NSAIDs需谨慎
关于鞋宽度标号(楦宽)的研究
西游封神中的昊天上帝和玉皇大帝,是同尊神吗?难怪民间喊老天爷
如何通过链上数据预测数字货币市场走势?数据分析技巧与预测模型
在这款国产机战游戏里,除了战斗爽你还能当赛博胶佬
亲属权利是什么?一文详解家庭成员间的法律权益
PVDF膜与硝酸纤维素(NC)膜对比解析
智齿拔除指南:四颗智齿全部拔掉后的后悔与颠覆性建议
年轻人开始“整顿”相亲角了?
一篇文章看懂商业计划书的结构与关键要素
品鉴红酒的层次感:一场丰富的感官之旅
摩托车交强险一年交多少钱?赔偿范围和计算方法详解
猩红热患儿的典型舌象是什么
综合施策,噪音治理,共筑城市噪音防护网
尺桡骨骨骺线闭合时间:影响因素与评估方法全解析
成年后可更改名字吗?详解改名流程与维权途径
新创意激发新活力:文旅消费深度发展的观察与思考
【青春普法】大学生的社会责任感与法律意识
倒签合同的风险有哪些
车载导航常见故障及解决方法