设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间23 现在时间23 缓存数据 荣耀也罢,屈辱也罢,都要以平和的心态去面对,少一些无奈与感慨,多一份从容和淡然。晚安!

荣耀也罢,屈辱也罢,都要以平和的心态去面对,少一些无奈与感慨,多一份从容和淡然。晚安!

查看: 457|回复: 0

html使用JavaScript + CSS实现亮色和暗色切换功能

[复制链接]

  离线 

TA的专栏

  • 打卡等级:即来则安
  • 打卡总天数:16
  • 打卡月天数:0
  • 打卡总奖励:221
  • 最近打卡:2024-07-11 01:01:50
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
36
主题
28
精华
0
金钱
329
积分
76
注册时间
2023-8-13
最后登录
2025-9-24

发表于 2025-8-30 03:12:38 | 显示全部楼层 |阅读模式
实现一个黑暗模式切换功能是现代网页设计中常见的需求。下面是一个完整的示例,展示如何使用 JavaScript + CSS 来实现一个简单的“黑暗模式”切换按钮。

✅ 实现思路


  • 使用
    1. CSS
    复制代码
    定义两种主题样式(亮色和暗色)。
  • 通过 JavaScript 动态切换 HTML 元素的
    1. class
    复制代码
    1. data-theme
    复制代码
    属性。
  • 使用
    1. localStorage
    复制代码
    保存用户选择的主题偏好。

🧩 示例代码


🔹 HTML 部分
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8" />
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  6.   <title>黑暗模式切换</title>
  7.   <link rel="stylesheet" href="styles.css" rel="external nofollow"  />
  8. </head>
  9. <body>
  10.   欢迎来到我的网站
  11.   <p>这是一个可以切换黑暗模式的页面。</p>
  12.   <button id="toggleThemeBtn">切换到暗色模式</button>

  13.   <script src="script.js"></script>
  14. </body>
  15. </html>
复制代码
🔹 CSS 部分 (styles.css)
  1. /* 默认亮色主题 */
  2. body {
  3.   background-color: #ffffff;
  4.   color: #000000;
  5.   transition: background-color 0.3s, color 0.3s;
  6. }

  7. /* 暗色主题样式 */
  8. .dark-mode {
  9.   background-color: #121212;
  10.   color: #ffffff;
  11. }
复制代码
🔹 JavaScript 部分 (script.js)
  1. const toggleButton = document.getElementById("toggleThemeBtn");

  2. // 页面加载时检查 localStorage 中是否有之前保存的主题
  3. if (localStorage.getItem("theme") === "dark") {
  4.   document.body.classList.add("dark-mode");
  5.   toggleButton.textContent = "切换到亮色模式";
  6. }

  7. // 切换主题函数
  8. toggleButton.addEventListener("click", () => {
  9.   document.body.classList.toggle("dark-mode");

  10.   // 修改按钮文字
  11.   if (document.body.classList.contains("dark-mode")) {
  12.     toggleButton.textContent = "切换到亮色模式";
  13.     localStorage.setItem("theme", "dark");
  14.   } else {
  15.     toggleButton.textContent = "切换到暗色模式";
  16.     localStorage.setItem("theme", "light");
  17.   }
  18. });
复制代码
🌟 进阶优化建议


  • 使用
    1. prefers-color-scheme: dark
    复制代码
    媒体查询来自动匹配系统设置:
    1. @media (prefers-color-scheme: dark) {
    2.   body:not(.dark-mode) {
    3.     background-color: #121212;
    4.     color: #ffffff;
    5.   }
    6. }
    复制代码
  • 使用
    1. data-theme="dark"
    复制代码
    而不是
    1. class
    复制代码
    ,更语义化地控制主题。
  • 可以封装为可复用组件或 React/Vue 插件。
  • 添加动画过渡效果提升用户体验。

完整示例
  1. <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>黑暗模式切换</title><style>        /* 默认亮色主题 */
  2. body {
  3.   background-color: #ffffff;
  4.   color: #000000;
  5.   transition: background-color 0.3s, color 0.3s;
  6. }

  7. /* 暗色主题样式 */
  8. .dark-mode {
  9.   background-color: #121212;
  10.   color: #ffffff;
  11. }@media (prefers-color-scheme: dark) {
  12.   body:not(.dark-mode) {
  13.     background-color: #121212;
  14.     color: #ffffff;
  15.   }
  16. }</style></head><body>  欢迎来到我的网站  <p>这是一个可以切换黑暗模式的页面。</p>  <button id="toggleThemeBtn">切换到暗色模式</button><script>const toggleButton = document.getElementById("toggleThemeBtn");

  17. // 页面加载时检查 localStorage 中是否有之前保存的主题
  18. if (localStorage.getItem("theme") === "dark") {
  19.   document.body.classList.add("dark-mode");
  20.   toggleButton.textContent = "切换到亮色模式";
  21. }

  22. // 切换主题函数
  23. toggleButton.addEventListener("click", () => {
  24.   document.body.classList.toggle("dark-mode");

  25.   // 修改按钮文字
  26.   if (document.body.classList.contains("dark-mode")) {
  27.     toggleButton.textContent = "切换到亮色模式";
  28.     localStorage.setItem("theme", "dark");
  29.   } else {
  30.     toggleButton.textContent = "切换到暗色模式";
  31.     localStorage.setItem("theme", "light");
  32.   }
  33. });</script></body></html>
复制代码
✅ 总结

你现在已经掌握了一个基础但实用的黑暗模式切换功能实现方式:

  • 用 CSS 定义样式;
  • 用 JS 控制类名切换;
  • 用 localStorage 保存用户偏好;
  • 用户体验友好,兼容性好。
到此这篇关于html使用JavaScript + CSS实现亮色和暗色切换功能的文章就介绍到这了,更多相关JavaScript和CSS实现html明暗切换内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表