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中保存用户的选择。
热门推荐
如何规避国际物流中出现的物流风险?
确保国际物流专线运输安全的多维度策略
张信哲《爱如潮水》再获金曲奖,深情歌曲唤醒无数回忆
良辰美景奈何天:《牡丹亭》中的诗词之美与人文价值
《小夫妻》:一场关于婚姻、家庭与成长的现实探讨
久坐危害大揭秘:现代生活中的隐形健康风险及有效预防措施
优质期刊推荐:探索中华美食与养生的知识宝库
OTG功能在哪里打开?一问到底详细指南与注意事项
OTG功能怎么用?手机连接外部设备的步骤和常见问题解答?
角色设计完全指南:从概念到成品的关键步骤与实用技巧
奇幻文学大师的写作方法:从构思到完成的全方位指南
山西教育改革:职称新规助力教师权益
山西2025新高考:3+1+2模式全解析
山西2025高考改革:新方案解读与备考指南
2024河南春晚大写的“中”,惊艳你的名场面是哪个?
心自由教育对孩子帮助大,孩子10岁还不懂尊敬长辈?这些方法立竿见影!
适合属蛇人的吉祥物?如何正确佩戴吉祥物?
属蛇运势2024年运程每月运程 属蛇人2024年全年运势详解每月运势如何
央视新三美:李红王冰冰王音棋,镜头前后大不一样,李红最为服众
我的世界手机版傀儡制作大全,附全各种傀儡的制造方法
豆腐皮的功效与作用、禁忌和食用方法
探索文化认同在英语教学中的作用与策略
让清水流过——深入浅出的自来水管清洗指南
让清水流过——深入浅出的自来水管清洗指南
河口口岸:中越边境云南段最大口岸
聊斋城花灯节&潭溪山冰瀑节:冬游淄川必打卡!
属蛇人的本命年:五个实用建议助你顺利度过
2025年属蛇人本命年:五个实用建议助你顺利过关
铸铝加热圈的使用范围有哪些?
伦理指引严防“基因编辑婴儿”,六年反思带来哪些改变