- 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轴索引
- 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 中是用于在 CSS 中应用或自定义样式的命令。
指令是您在 CSS 中使用的Tailwind CSS 命令,用于访问特殊功能并控制 Tailwind CSS 应用的样式。
@tailwind
@tailwind 指令允许您将 Tailwind 的基础样式、组件、实用程序和变体直接包含到您的 CSS 中。
示例
/** * Inserts Tailwind's foundational styles and any additional base styles from plugins. */ @tailwind base; /** * Includes Tailwind's component styles and any extra component styles from plugins. */ @tailwind components; /** * Adds Tailwind's utility classes and any additional utility classes from plugins. */ @tailwind utilities; /** * Controls the placement of variant styles (like hover, focus, and responsive) in your CSS. * If not specified, these variants are added at the end of your stylesheet by default. */ @tailwind variants;
@layer
@layer 指令允许您指定自定义样式在 Tailwind 中属于哪个类别(基础、组件或实用程序)。
示例
/** * Import Tailwind's base styles, component styles, and utility classes into your CSS. */ @tailwind base; @tailwind components; @tailwind utilities; /** * Define custom base styles for HTML elements using the base layer. */ @layer base { h1 { @apply font-bold text-3xl; /* Applies a bold font and large size to h1 elements */ } h2 { @apply font-semibold text-2xl; /* Applies a semi-bold font and medium size to h2 elements */ } } /** * Create custom component styles using the components layer. */ @layer components { .card { @apply bg-gray-100 border border-gray-300 p-4 rounded-lg shadow-md; /* Styles for a card component */ } } /** * Add custom utility classes using the utilities layer. */ @layer utilities { .no-opacity { opacity: 1; /* Sets the element's opacity to fully opaque */ } .blurred { filter: blur(5px); /* Applies a blur effect to elements */ } }
Tailwind 会自动在@layer 指令中组织 CSS 以匹配@tailwind规则的顺序,因此您无需担心顺序以避免特异性问题。
这些层中的自定义 CSS 仅在 HTML 中使用时才会包含在最终构建中,就像默认的 Tailwind 类一样。
此外,使用@layer 允许您将修饰符(如悬停、焦点)和响应式断点(如md: 和lg:)应用到您的自定义样式。
@apply
@apply 允许您将现有的实用程序类直接包含到您的自定义 CSS 中。
如果您希望在编写自己的 CSS 时使用 Tailwind 的样式,这将非常有用,从而更容易自定义或覆盖来自其他来源的样式。
示例
.custom-card { @apply rounded-lg shadow-lg; } .custom-input { @apply border border-gray-400 rounded-md; } .custom-header { @apply text-xl font-semibold text-gray-800; }
当您使用@apply 时,默认情况下会删除任何!important声明以防止与其他 CSS 规则冲突。以下是它的工作原理。
示例
/* Define a class with !important */ .text-red { color: red !important; } /* Apply the .text-red class to another class */ .alert { @apply text-red; } /* The .text-red class retains the !important declaration */ .text-red { color: red !important; } /* The .alert class does not include !important */ .alert { color: red; }
如果您想使用@apply包含来自现有类的样式并确保它们是!important,则需要在自定义 CSS 中每个属性的末尾显式添加!important。
/* The .card class without !important */ .card { padding: 1rem; background-color: #edf2f7; border: 1px solid #cbd5e0; border-radius: .375rem; } /* The .card-important class with !important */ .card-important { padding: 1rem !important; background-color: #edf2f7 !important; border: 1px solid #cbd5e0 !important; border-radius: .375rem !important; }
要使用@apply应用!important,请在每个属性中添加!important。Sass/SCSS,请使用这种方法包含!important
/* Apply !important using Sass variable */ .card-important { @apply p-4 bg-gray-200 border border-gray-400 rounded; @apply #{$important}; /* Applies !important */ }
在每个组件的 CSS 中使用 @apply
在Vue 和Svelte 等框架中,您可以将样式直接包含在每个组件文件内的<style>块中。
尝试在Vue 或Svelte 等框架中的<style>块内使用来自全局 CSS 的自定义类会导致错误,因为它找不到该类。
示例 :main.css
@tailwind base; @tailwind components; @tailwind utilities; @layer components { .button { background-color: theme('colors.blue.500'); border-radius: theme('borderRadius.md'); padding: theme('spacing.4'); color: theme('colors.white'); } }
示例 :Card.svelte
<button> <slot></slot> </button> <style> button { /* This won't work because Button.svelte and main.css are processed separately */ @apply button; } </style>
在此示例中,.button 在 main.css 中定义,但Button.svelte 中的@apply不起作用,因为每个文件都是单独处理的。Vue 和Svelte独立处理它们的<style>块,因此它们无法直接使用来自全局 CSS 的样式。
当你有多个组件,每个组件都有自己的<style>块时,Tailwind 会分别处理每个文件。例如,如果你在main.css中定义了一个.button类,但尝试在Button.svelte中使用@apply button,它将无法工作。这是因为 Tailwind 会独立处理Button.svelte和main.css,所以在Button.svelte中使用.button类时,它无法识别该类。
不要尝试跨文件使用@apply,而是在Tailwind 的配置中直接定义你的样式。以下是方法。
示例
const plugin = require('tailwindcss/plugin') module.exports = { // ... plugins: [ plugin(function ({ addComponents, theme }) { addComponents({ '.button': { backgroundColor: theme('colors.blue.500'), borderRadius: theme('borderRadius.md'), padding: theme('spacing.4'), boxShadow: theme('boxShadow.md'), color: theme('colors.white'), } }) }) ] }
通过这样做,任何 Tailwind CSS 文件都可以访问.button类。
为了获得更流畅的体验,最好直接在 HTML 中使用Tailwind 的实用程序类,而不是依赖于跨文件的@apply。这种方法简化了你的设置并避免了复杂情况。
@config
@config 指令告诉 Tailwind CSS 在处理特定 CSS 文件时使用哪个配置文件。如果你项目的不同部分使用了不同的配置文件,这将非常有用。
在site.css中,你可能会使用默认配置。
示例
@config "./tailwind.site.config.js"; @tailwind base; @tailwind components; @tailwind utilities;
在admin.css中,你可以使用以下方式指定不同的配置文件:
示例
@config "./tailwind.admin.config.js"; @tailwind base; @tailwind components; @tailwind utilities;
你在@config指令中指定的路径相对于 CSS 文件本身,并将覆盖你在 PostCSS 设置或 Tailwind CLI 中设置的任何配置。
当使用 Tailwind CSS 与postcss-import时,请确保所有@import语句都位于 CSS 文件中@config指令之前。
为什么?postcss-import需要先处理@import语句,遵循 CSS 规则,这些规则要求导入出现在任何其他规则之前。如果你将@config放在@import语句之前,会导致问题,你的样式可能无法正确处理。
示例:错误顺序
/* Incorrect order - will cause problems */ @config "./tailwind.admin.config.js"; @import "tailwindcss/base"; @import "./custom-base.css"; @import "tailwindcss/components"; @import "./custom-components.css"; @import "tailwindcss/utilities";
示例:正确顺序
/* Always put @import first */ @import "tailwindcss/base"; @import "./custom-base.css"; @import "tailwindcss/components"; @import "./custom-components.css"; @import "tailwindcss/utilities"; @config "./tailwind.admin.config.js";
函数
使用 Tailwind,你可以在 CSS 中使用自定义函数来访问Tailwind 特定的值。这些函数在构建时计算,并在最终 CSS 中转换为静态值。
@theme
要访问Tailwind 配置中的值,只需使用带点表示法的theme()函数即可。
示例
.button { border-width: theme(borderWidth.md); }
如果需要使用带点的值(如边框宽度比例中的 3.5),请使用方括号
示例
.button { border-width: theme(borderWidth[3.5]); }
要访问Tailwind 默认调色板中的嵌套颜色,请使用点表示法以确保正确引用颜色值。
避免对嵌套颜色值使用连字符。
示例
/* Incorrect */ .button { background-color: theme(colors.green-500); }
使用点来访问嵌套颜色值。
示例
/* Correct */ .button { background-color: theme(colors.green.500); }
要更改主题颜色的不透明度,请添加一个斜杠,后跟不透明度百分比
示例
.card-bg { background-color: theme(colors.green.300 / 50%); }
@screens
Tailwind CSS 中的screen()函数允许你使用命名断点创建媒体查询,避免在 CSS 中重复值。
示例
@media screen(md) { /* Styles for medium screens and up */ }
在构建 CSS 时,这将转换为指定断点的标准媒体查询。
示例
@media (min-width: 768px) { /* Styles for screens that are at least 768px wide */ }
@screens
Tailwind CSS 中的screen()函数可帮助你使用命名断点创建媒体查询,而不是在 CSS 中重复其值。
示例
@media screen(md) { /* Styles for medium screens and up */ }
在构建 CSS 时,这将转换为指定断点的标准媒体查询。
示例
@media (min-width: 768px) { /* Styles for screens that are at least 768px wide */ }