Tailwindcss开启黑夜模式

本篇讲述如何使用tailwindcss切换白天黑夜主题

tailwindcss自带的暗夜切换会比css自带的theme主体切换来得方便很多,学习成本也很低,只要求会用tailiwndcss

1,tailwindcss.config有两种暗夜模式切换,媒体查询和手动类切换。手动控制需要开启类模式

javascript 复制代码
// tailwind.config.js
export default {
    ...
    darkMode:'class', // 使用class策略
}

2,设置点击切换事件:点击为html根元素添加dark类

javascript 复制代码
// 切换主体颜色(直接修改html的类)
const toggleTheme = () => {
    const html = document.documentElement

    html.classList.toggle('dark')
    if (html.classList.contains('dark')) {
        localStorage.setItem('Dark', 'true')
    } else {
        localStorage.removeItem('Dark')
    }
}

切换后 将是否有dark类 存放在localstorage中,保持记忆性

3,进入网页前,记忆用户选择的模式,在index.html中写入函数,使其在页面渲染前执行,如果localstorage已经存放了dark 代表开启暗夜模式 如果没有 则不执行

javascript 复制代码
// index.html  
<head>
<script>
      // 在页面渲染前执行
      (function() {
        if (localStorage.getItem('Dark')) {
          document.documentElement.classList.add('dark');
        }
      })();
    </script>
</head>
相关推荐
Flynt4 分钟前
Linear 用 1000 个 PR 换掉 styled-components,我写了 200 个按钮,把这笔账复现了一遍
前端·css·preact
qwfy5 小时前
我要用 AI-native 架构,从零重建一套制造业 ERP/MES
vue.js·spring boot·架构
dsyyyyy11016 小时前
Vue 3 Watch 监视完全指南
前端·javascript·vue.js
瞬时出道6 小时前
AI 回答为什么能一个字一个字蹦出来?前端搞懂 SSE 这一篇就够了
vue.js
u0111026758 小时前
Vue 3 实现图片裁剪框:拖动、缩放与固定宽高比
前端·javascript·vue.js
小小善后师8 小时前
用 Canvas + AI 实现登录页的 Logo 粒子动画
前端·vue.js
java_nnnn8 小时前
JavaEE进阶-CSS初识
java·前端·css·java-ee·html
赵锦川9 小时前
css代替表格
前端·css
小刘在重生~10 小时前
CSS 零基础完整学习笔记|选择器|盒子模型|布局
css·笔记·学习
web打印社区10 小时前
远程打印:WebSocket 与 HTTP 轮询怎么选
前端·vue.js·websocket·网络协议·http·electron·pdf