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>
相关推荐
武天20 分钟前
Vue项目中有封装过axios吗?怎么封装的?
vue.js
jiangzhihao05151 小时前
升级到webpack5
前端·javascript·vue.js
橘子海全栈攻城狮1 小时前
【源码+文档+调试讲解】基于SpringBoot + Vue的知识产权管理系统 041
java·vue.js·人工智能·spring boot·后端·安全·spring
掘金安东尼2 小时前
官方:什么是 Vite+?
前端·javascript·vue.js
533_3 小时前
[css] border 渐变
前端·css
昔人'4 小时前
css`text-underline-offset` 为文本下划线设置偏移量
前端·css
ღ_23335 小时前
vue3二次封装element-plus表格,slot透传,动态slot。
前端·javascript·vue.js
ybb_ymm6 小时前
前端开发之ps基本使用
前端·css
Ashley的成长之路6 小时前
NativeScript-Vue 开发指南:直接使用 Vue构建原生移动应用
前端·javascript·vue.js
朕的剑还未配妥6 小时前
Vue 2 响应式系统常见问题与解决方案(包含_demo以下划线开头命名的变量导致响应式丢失问题)
前端·vue.js