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
中保存用户的选择。
热门推荐
解决华硕win10自动修复无法开机的五个步骤详解
亚洲龙VS凯美瑞,究竟有何不同?深度剖析两款车型的异同
狗尿检的重要性——从宠物角度探究(让你的宠物更健康)
武汉长江大桥:连接南北的“万里长江第一桥”
这就是江湖斗蛐蛐新手必看攻略:从蛐蛐培养到战斗策略全解析
把学习当成游戏,开启趣味学习之旅
多巴胺与抑郁症的联系
南昌大学2024录取分数线:最低多少分能上(各省汇总)
@准大学生 学费有压力?国家助学贷款热点十问十答
老照片修复工作流教程:用 ComfyUI 轻松还原历史记忆
如何开拓建筑公司的市场并提高市场竞争力?
庭院"方寸地"开出"致富花"
金价连创新高 黄金ETF持续"吸金"
工程中的公制螺纹是什么?详细指南
过度加班导致疾病公司需要负责吗
智慧工地系统中物联网和传感器技术的应用
新能源汽车电池类型大盘点:谁才是未来的王者?
事故车可以改装轮毂吗?法律、安全与实操全解析
电机和减速器之间的关系及作用,详解电机与减速器的配合机制
沙文主义的由来:从法国士兵到极端民族主义
蒸馏水的制作方法和应用场景是什么?这些制作方法如何确保水质的安全性?
中国载人航天:从"神舟"到"天宫"
高产奶牛的饲养管理技术
16岁的学生可以买社保吗?买社保合适吗?
百家旅行社齐聚番禺,十二条主题线路展现旅游示范区魅力
春季易疲惫,感觉身体被“掏空”?改善气血两虚,用好这三招
为什么物理世界似乎被数学精确地描述?
高铁是如何定价的?票价调整出于哪些考虑?专家解读
《星露谷物语》1.6蘑菇树桩与树的种植布局攻略
唐起诉方式:探究古代中国诉讼制度的演变与发展