- Tailwind CSS 教程
- Tailwind CSS - 首页
- Tailwind CSS - 路线图
- Tailwind CSS - 简介
- Tailwind CSS - 安装
- Tailwind CSS - 编辑器设置
- Tailwind CSS - 核心概念
- Tailwind CSS - 实用优先基础
- Tailwind CSS - 悬停、焦点和其他状态
- Tailwind CSS - 响应式设计
- Tailwind CSS - 深色模式
- Tailwind CSS - 重用样式
- Tailwind CSS - 添加自定义样式
- Tailwind CSS - 函数和指令
- Tailwind CSS - 自定义
- Tailwind CSS - 配置
- Tailwind CSS - 内容配置
- Tailwind CSS - 主题配置
- Tailwind CSS - 自定义屏幕
- Tailwind CSS - 自定义颜色
- Tailwind CSS - 自定义间距
- Tailwind CSS - 插件
- Tailwind CSS - 预设
- Tailwind CSS - 基础样式
- Tailwind CSS - 预处理
- Tailwind CSS - 布局
- Tailwind CSS - 高宽比
- Tailwind CSS - 容器
- Tailwind CSS - 列
- Tailwind CSS - 断行后
- Tailwind CSS - 断行前
- Tailwind CSS - 断行内
- Tailwind CSS - 边框装饰断开
- Tailwind CSS - 盒子大小
- Tailwind CSS - 显示
- Tailwind CSS - 浮动
- Tailwind CSS - 清除浮动
- Tailwind CSS - 隔离
- Tailwind CSS - 对象适应
- Tailwind CSS - 对象位置
- Tailwind CSS - 溢出
- Tailwind CSS - 滚动行为
- Tailwind CSS - 位置
- Tailwind CSS - 上/右/下/左
- Tailwind CSS - 可见性
- Tailwind CSS - Z-index
- Tailwind CSS - Flexbox 和 Grid
- Tailwind CSS - Flex 基准
- Tailwind CSS - Flex 方向
- Tailwind CSS - Flex 换行
- Tailwind CSS - Flex
- Tailwind CSS - Flex 伸展
- Tailwind CSS - Flex 收缩
- Tailwind CSS - 顺序
- Tailwind CSS - 网格模板列
- Tailwind CSS - 网格列开始/结束
- Tailwind CSS - 网格模板行
- Tailwind CSS - 网格行开始/结束
- Tailwind CSS - 网格自动流
- Tailwind CSS - 网格自动列
- Tailwind CSS - 网格自动行
- Tailwind CSS - 间隙
- Tailwind CSS - 内容对齐
- Tailwind CSS - 项目对齐
- Tailwind CSS - 自身对齐
- Tailwind CSS - 内容排列
- Tailwind CSS - 项目排列
- Tailwind CSS - 自身排列
- Tailwind CSS - 内容放置
- Tailwind CSS - 项目放置
- Tailwind CSS - 自身放置
- Tailwind CSS - 间距
- Tailwind CSS - 内边距
- Tailwind CSS - 外边距
- Tailwind CSS - 元素间距
- Tailwind CSS - 大小
- Tailwind CSS - 宽度
- Tailwind CSS - 最小宽度
- Tailwind CSS - 最大宽度
- Tailwind CSS - 高度
- Tailwind CSS - 最小高度
- Tailwind CSS - 最大高度
- Tailwind CSS - 尺寸
- Tailwind CSS - 排版
- Tailwind CSS - 字体系列
- Tailwind CSS - 字体大小
- Tailwind CSS - 字体平滑
- Tailwind CSS - 字体样式
- Tailwind CSS - 字体粗细
- Tailwind CSS - 数字字体变体
- Tailwind CSS - 字间距
- Tailwind CSS - 行数限制
- Tailwind CSS - 行高
- Tailwind CSS - 列表样式图片
- Tailwind CSS - 列表样式位置
- Tailwind CSS - 列表样式类型
- Tailwind CSS - 文本对齐
- Tailwind CSS - 文本颜色
- Tailwind CSS - 文本装饰
- Tailwind CSS - 文本装饰颜色
- Tailwind CSS - 文本装饰样式
- Tailwind CSS - 文本装饰粗细
- Tailwind CSS - 文本下划线偏移
- Tailwind CSS - 文本转换
- Tailwind CSS - 文本溢出
- Tailwind CSS - 文本换行
- Tailwind CSS - 文本缩进
- Tailwind CSS - 垂直对齐
- Tailwind CSS - 空白符
- Tailwind CSS - 断字
- Tailwind CSS - 连字符
- Tailwind CSS - 内容
- Tailwind CSS - 背景
- Tailwind CSS - 背景附件
- Tailwind CSS - 背景裁剪
- Tailwind CSS - 背景颜色
- Tailwind CSS - 背景原点
- Tailwind CSS - 背景位置
- Tailwind CSS - 背景重复
- Tailwind CSS - 背景大小
- Tailwind CSS - 背景图片
- Tailwind CSS - 渐变颜色停止
- Tailwind CSS - 边框
- Tailwind CSS - 边框半径
- Tailwind CSS - 边框宽度
- Tailwind CSS - 边框颜色
- Tailwind CSS - 边框样式
- Tailwind CSS - 分隔线宽度
- Tailwind CSS - 分隔线颜色
- Tailwind CSS - 分隔线样式
- Tailwind CSS - 轮廓宽度
- Tailwind CSS - 轮廓颜色
- Tailwind CSS - 轮廓样式
- Tailwind CSS - 轮廓偏移
- Tailwind CSS - 环宽度
- Tailwind CSS - 环颜色
- Tailwind CSS - 环偏移宽度
- Tailwind CSS - 环偏移颜色
- Tailwind CSS - 效果
- Tailwind CSS - 盒子阴影
- Tailwind CSS - 盒子阴影颜色
- Tailwind CSS - 不透明度
- Tailwind CSS - 混合模式
- Tailwind CSS - 背景混合模式
- Tailwind CSS - 滤镜
- Tailwind CSS - 模糊
- Tailwind CSS - 亮度
- Tailwind CSS - 对比度
- Tailwind CSS - 投影
- Tailwind CSS - 灰度
- Tailwind CSS - 色调旋转
- Tailwind CSS - 反相
- Tailwind CSS - 饱和度
- Tailwind CSS - 棕褐色
- Tailwind CSS - 背景模糊
- Tailwind CSS - 背景亮度
- Tailwind CSS - 背景对比度
- Tailwind CSS - 背景灰度
- Tailwind CSS - 背景色调旋转
- Tailwind CSS - 背景反相
- Tailwind CSS - 背景不透明度
- Tailwind CSS - 背景饱和度
- Tailwind CSS - 背景棕褐色
- Tailwind CSS - 表格
- Tailwind CSS - 边框塌陷
- Tailwind CSS - 边框间距
- Tailwind CSS - 表格布局
- Tailwind CSS - 标题位置
- Tailwind CSS - 过渡和动画
- Tailwind CSS - 过渡属性
- Tailwind CSS - 过渡持续时间
- Tailwind CSS - 过渡时序函数
- Tailwind CSS - 过渡延迟
- Tailwind CSS - 动画
- Tailwind CSS - 变换
- Tailwind CSS - 缩放
- Tailwind CSS - 旋转
- Tailwind CSS - 位移
- Tailwind CSS - 倾斜
- Tailwind CSS - 变换原点
- Tailwind CSS - 交互性
- Tailwind CSS - 强调颜色
- Tailwind CSS - 外观
- Tailwind CSS - 光标
- Tailwind CSS - 光标颜色
- Tailwind CSS - 指针事件
- Tailwind CSS - 调整大小
- Tailwind CSS - 滚动行为
- Tailwind CSS - 滚动边距
- Tailwind CSS - 滚动填充
- Tailwind CSS - 滚动捕捉对齐
- Tailwind CSS - 滚动捕捉停止
- Tailwind CSS - 滚动捕捉类型
- Tailwind CSS - 触摸操作
- Tailwind CSS - 用户选择
- Tailwind CSS - 将更改
- Tailwind CSS - SVG
- Tailwind CSS - 填充
- Tailwind CSS - 描边
- Tailwind CSS - 描边宽度
- Tailwind CSS - 可访问性
- Tailwind CSS - 屏幕阅读器
- Tailwind CSS - 强制颜色调整
- Tailwind CSS - 附加
- Tailwind CSS - 与预处理器一起使用
- Tailwind CSS - 生产优化
- Tailwind CSS - 参考
- Tailwind CSS - 核心概念
- Tailwind CSS - 自定义
- Tailwind CSS - 布局
- Tailwind CSS - Flexbox 和 Grid
- Tailwind CSS - 间距
- Tailwind CSS - 大小
- Tailwind CSS - 排版
- Tailwind CSS - 背景
- Tailwind CSS - 边框
- Tailwind CSS - 效果
- Tailwind CSS - 滤镜
- Tailwind CSS - 表格
- Tailwind CSS - 过渡和动画
- Tailwind CSS - 变换
- Tailwind CSS - 交互性
- Tailwind CSS - 资源
- Tailwind CSS - 讨论
- Tailwind CSS - 有用资源
Tailwind CSS - 深色模式
深色模式是许多操作系统中的一项功能,它将屏幕的配色方案更改为较暗的色调。它在低光照条件下提高了可见性,并与传统的明亮主题相比,提供了更柔和的观看体验。
Tailwind CSS简化了在您的网站上实现深色模式的过程。它提供了一个内置的深色模式变体,允许您轻松地为亮色和深色主题设置网站样式。
您可以使用Tailwind 的深色变体定义深色模式的特定样式,确保您的网站在亮色和深色设置下都能看起来很棒。
示例
<!DOCTYPE html> <html lang="en" class="dark"> <head> <script src="https://cdn.tailwindcss.com"></script> </head> <body class="bg-gray-200 p-4"> <div class="grid grid-cols-2 gap-6"> <!-- Light Mode Card --> <div class="bg-white p-6 rounded-lg shadow-xl"> <h2 class="text-xl font-semibold mb-2 text-gray-800"> Light Mode </h2> <p class="text-gray-600"> This is the light mode version of the card. The background is white, and the text is in shades of gray, offering a clean and bright appearance. </p> </div> <!-- Dark Mode Card --> <div class="bg-gray-900 p-6 rounded-lg shadow-xl"> <h2 class="text-xl font-semibold mb-2 text-gray-100"> Dark Mode </h2> <p class="text-gray-400"> This is the dark mode version of the card. The background is dark gray, and the text is in lighter shades, making it easier to read in low-light conditions. </p> </div> </div> </body> </html>
此示例显示了卡片组件在亮色模式和深色模式下的外观,并排显示。亮色模式卡片具有白色背景和深色文本,而深色模式卡片具有深色背景和浅色文本,便于阅读。
使用 Tailwind CSS 手动切换深色模式
要在您的 Tailwind CSS 项目中手动控制深色模式,您可以使用“选择器”策略,而不是依赖系统的默认设置来处理深色模式。以下是配置方法。
在您的tailwind.config.js文件中,设置深色模式如下:
module.exports = { darkMode: 'selector', // ... }
通过此设置,当元素上存在特定类(例如,dark)时,将应用深色模式样式,而不是依赖用户的系统设置。
示例:无深色模式
<html> <body> <!-- This will be white --> <div class="bg-white dark:bg-black"> <!-- ... --> </div> </body> </html>
示例:启用深色模式
<html class="dark"> <body> <!-- This will be black --> <div class="bg-white dark:bg-black"> <!-- ... --> </div> </body> </html>
如果您在Tailwind 配置中使用了前缀,请确保将其应用于深色模式类。例如,使用像tw-这样的前缀,您应该使用tw-dark来激活深色模式。此外,为了管理何时应用 dark 类,您可以使用 JavaScript 检查用户首选项(例如来自localStorage)并相应地更新 HTML。
自定义深色模式选择器
在某些框架中,深色模式的处理方式不同,使用唯一的类名或方法。Tailwind CSS允许您通过在配置中定义自定义选择器来自定义深色模式的应用方式。
您可以通过使用数组配置darkMode来设置自定义选择器,如下所示:
/** @type {import('tailwindcss').Config} */ module.exports = { darkMode: ['selector', '[data-mode="dark"]'], // ... }
Tailwind 将使用:where()伪类包装您的自定义选择器,以确保其特异性与基于媒体的默认策略匹配。
.dark\:underline:where([data-mode="dark"], [data-mode="dark"] *) { text-decoration-line: underline; }
同时支持系统首选项和手动选择
您可以使用选择器策略来同时支持系统首选项和手动主题切换。此示例显示了如何使用localStorage和window.matchMedia() API 来管理主题。
// Check and apply the theme on page load if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } // To set light mode localStorage.theme = 'light'; // To set dark mode localStorage.theme = 'dark'; // To respect the OS preference localStorage.removeItem('theme');
您可以完全灵活地实现这一点,无论您选择在客户端管理首选项还是将它们存储在服务器上并在页面呈现期间应用它们。
自定义深色模式变体
如果您更愿意使用您自己的深色模式变体而不是Tailwind 的默认变体,您可以在您的tailwind.config.js文件中对其进行自定义。要设置自定义深色模式变体,请使用以下配置。
/** @type {import('tailwindcss').Config} */ module.exports = { darkMode: ['variant', '&:not(.light *)'], // ... }
使用此方法,Tailwind 不会更改您提供的选择器。因此,请注意其特异性,并考虑使用:where()伪类来匹配其他 Tailwind 实用程序的特异性。
使用多个选择器
如果您需要适应不同的场景来启用深色模式,可以在配置文件中数组内指定多个选择器。
/** @type {import('tailwindcss').Config} */ module.exports = { darkMode: ['variant', [ '@media (prefers-color-scheme: dark) { &:not(.light *) }', '&:is(.dark *)', ]], // ... }
此配置允许您通过指定多个选择器来处理各种深色模式用例。