Tailwind CSS 教程
Tailwind CSS 教程
Tailwind CSS 是一个实用性(utility-first)CSS 框架,通过组合原子类快速构建界面,无需编写自定义 CSS。
本教程包含
- 基础篇:简介、安装(CDN/NPM)、配置、工具类、状态处理
- 设计篇:响应式、深色模式、重用样式、自定义、指令与函数
- 布局篇:布局、Flex/Grid、间距、尺寸、表格
- 样式篇:排版、背景、边框、阴影、动画
核心思想
<!-- 传统 CSS:先写类,再写样式文件 -->
<button class="btn-primary">按钮</button>
<!-- Tailwind:直接用工具类组合 -->
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
按钮
</button>
特点
- 快速开发,无需切换 HTML/CSS
- 设计一致(统一间距/颜色/字号体系)
- 按需生成,生产包体积小
- 高度可定制(tailwind.config.js)
Tailwind CSS 简介
Tailwind CSS 简介
Tailwind CSS 由 Adam Wathan 于 2017 年创建,是目前最流行的 CSS 框架之一。
Utility-First(实用优先)
// 传统框架(Bootstrap): 预置组件
<button class="btn btn-primary">
// Tailwind: 原子类组合
<button class="bg-blue-500 text-white px-4 py-2 rounded">
优势
- 无需命名类名(告别 BEM)
- 不写 CSS 也能完成布局
- 类名即文档,样式一目了然
- 与组件框架(React/Vue)完美配合
可能的缺点
- HTML 类名冗长
- 需要记忆类名(@apply 可缓解)
- 学习曲线主要在"知道有什么类"
版本演进
v1 2019 初版
v2 2020 支持 JIT 前身
v3 2021 JIT 引擎,按需生成
v4 2025 新版,更快更简(需 Node 20+)
与 CSS-in-JS 对比
Tailwind: 编译期生成 CSS
CSS Modules / styled-components: 运行期或构建期样式隔离Tailwind CSS 安装(CDN)
Tailwind CSS 安装(CDN)
最快上手方式:通过 CDN 引入,无需构建工具。
Play CDN(开发用)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<h1 class="text-3xl font-bold text-blue-600">Hello Tailwind!</h1>
</body>
</html>
CDN 配置
<script>
tailwind.config = {
theme: {
extend: {
colors: {
brand: "#1e40af",
},
},
},
};
</script>
注意事项
1. CDN 版不推荐用于生产(运行时生成样式,性能差)
2. 仅适合原型/演示/学习
3. 生产环境必须用构建方式
用 CDN 体验
<div class="max-w-md mx-auto bg-white rounded-xl shadow-md overflow-hidden">
<div class="p-8">
<p class="text-indigo-500 font-semibold">示例卡片</p>
<h2 class="text-2xl font-bold">标题</h2>
<p class="text-gray-500">描述文字...</p>
</div>
</div>Tailwind CSS 4 安装(NPM)
Tailwind CSS 4 安装(NPM)
Tailwind CSS v4 大幅简化了安装流程,推荐用于生产项目。
v4 安装步骤
# 1. 初始化项目
npm init -y
npm install tailwindcss @tailwindcss/vite
# 2. 在 CSS 中引入(只需一行!)
@import "tailwindcss";
Vite 配置
// vite.config.js
import { defineConfig } from "vite";
import tailwindcss from "@tailwindcss/vite";
export default defineConfig({
plugins: [tailwindcss()],
});
HTML 中使用
<div class="flex items-center justify-center h-screen bg-gray-100">
<h1 class="text-4xl font-bold text-center">Tailwind v4</h1>
</div>
v4 新特性
@import "tailwindcss" 一行引入
CSS-first 配置(用 @theme 替代 JS 配置)
更快的构建引擎
原生级联层(Cascade Layers)
v4 自定义主题(CSS 方式)
@import "tailwindcss";
@theme {
--color-brand: #1e40af;
--font-display: "Noto Sans SC", sans-serif;
}
/* 生成类: bg-brand / font-display */Tailwind CSS 3 安装(NPM)
Tailwind CSS 3 安装(NPM)
v3 是使用最广泛的版本,通过 PostCSS 集成到构建流程。
安装依赖
npm install -D tailwindcss postcss autoprefixer
初始化
npx tailwindcss init -p
# 生成 tailwind.config.js 和 postcss.config.js
配置内容扫描
// tailwind.config.js
module.exports = {
content: [
"./index.html",
"./src/**/*.{js,ts,jsx,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}
CSS 引入指令
/* src/style.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
构建
# 生产构建
NODE_ENV=production npx tailwindcss -i ./src/style.css -o ./dist/style.css --minify
v3 vs v4 主要区别
v3: tailwind.config.js 配置,PostCSS 插件
v4: CSS-first 配置,原生 Vite 插件,更少配置Tailwind CSS 基础概念
Tailwind CSS 基础概念
理解核心概念:设计令牌、工具类、伪类变体、响应式前缀。
设计令牌(Design Tokens)
颜色: blue-500, red-600, gray-100
字号: text-sm, text-xl, text-4xl
间距: p-4, m-2, gap-8, space-x-4
圆角: rounded, rounded-lg, rounded-full
阴影: shadow, shadow-lg
字体: font-bold, font-medium
工具类命名规则
[属性]-[值] 或 [属性]-[修饰]-[值]
bg-blue-500 背景色
text-sm 字号
px-4 水平内边距
max-w-md 最大宽度
border-t-2 上边框2px
伪类变体
hover: 鼠标悬停
focus: 聚焦
active: 激活
disabled: 禁用
first: / last: 首/末子元素
odd: / even: 奇/偶子元素
placeholder: 占位符
响应式前缀
sm: ≥640px md: ≥768px
lg: ≥1024px xl: ≥1280px 2xl: ≥1536px
<div class="text-sm md:text-base lg:text-lg">
其他变体
group-hover: 组悬停(配合 group 类)
dark: 深色模式
motion-safe: / motion-reduce: 动画偏好Tailwind CSS 配置
Tailwind CSS 配置
通过配置文件自定义设计系统,扩展默认主题。
配置文件结构(v3)
// tailwind.config.js
module.exports = {
content: ["./src/**/*.{html,js}"], // 扫描文件
theme: {
extend: {
colors: {
primary: {
light: "#4f7cff",
DEFAULT: "#2563eb",
dark: "#1e40af",
},
},
fontSize: {
xxs: "0.65rem",
},
spacing: {
18: "4.5rem",
},
fontFamily: {
sans: ["Inter", "sans-serif"],
},
},
},
plugins: [],
};
extend vs 覆盖
extend: 在默认主题上增加(推荐)
直接写 theme.colors: 完全替换默认
变体配置(v3)
// 为插件启用变体(如 forms)
plugins: [
require("@tailwindcss/forms"),
],
v4 CSS 配置
@import "tailwindcss";
@theme {
--color-primary: #2563eb;
--spacing-18: 4.5rem;
}
@custom-variant dark (&:where(.dark, .dark *));
常用配置场景
品牌色/字体/间距体系
断点自定义(screens)
自定义容器宽度(container)
暗色模式开关(darkMode)Tailwind CSS 工具类
Tailwind CSS 工具类
系统了解 Tailwind 的工具类体系,是高效使用的关键。
分类总览
布局: flex, grid, block, hidden, container
间距: m-*, p-*, space-*, gap-*
尺寸: w-*, h-*, min-w-*, max-h-*
排版: text-*, font-*, tracking-*, leading-*
背景: bg-*, bg-gradient-*
边框: border-*, rounded-*, outline-*
效果: shadow-*, opacity-*, blur-*
动画: transition-*, animate-*
表格: table-*, border-collapse
常用速查
flex display: flex
items-center 垂直居中
justify-between 水平两端对齐
w-full 宽度100%
h-screen 高度100vh
text-center 居中
bg-white 白色背景
rounded-lg 圆角
shadow-md 阴影
transition 过渡
类名组合示例
<div class="flex items-center justify-between p-4 bg-gray-50 rounded-xl">
<span class="text-lg font-semibold">标题</span>
<button class="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600">
按钮
</button>
</div>
查询方式
官方文档搜索栏(cheatsheet)
IDE 插件: Tailwind CSS IntelliSense 自动提示Tailwind CSS 状态处理
Tailwind CSS 状态处理
通过变体前缀处理伪类状态,实现交互样式。
常用状态
hover: 悬停
focus: 聚焦
active: 按下
visited: 已访问
disabled: 禁用
checked: 勾选
first-child / last-child
odd / even
group-hover / group-focus
peer-*: 兄弟元素联动
悬停示例
<button class="bg-blue-500 hover:bg-blue-700 active:bg-blue-800 transition-colors">
按钮
</button>
<a href="#" class="text-blue-500 hover:text-blue-700 hover:underline">链接</a>
group 组悬停
<div class="group bg-white hover:bg-gray-50 p-4 rounded-lg">
<h3 class="group-hover:text-blue-600">卡片标题</h3>
<p class="opacity-0 group-hover:opacity-100 transition">悬停才显示</p>
</div>
peer 兄弟联动
<input type="checkbox" class="peer">
<p class="hidden peer-checked:block">勾选后显示此内容</p>
focus-visible 与焦点
<input class="focus:ring-2 focus:ring-blue-500 focus:outline-none border rounded px-3 py-2">
disabled/checked
<button disabled class="disabled:opacity-50 disabled:cursor-not-allowed">禁用</button>Tailwind CSS 响应式设计
Tailwind CSS 响应式设计
使用断点前缀让布局适配不同屏幕尺寸,移动优先。
断点体系
无前缀 移动端(基础样式)
sm: ≥640px 平板竖屏
md: ≥768px 平板横屏
lg: ≥1024px 桌面
xl: ≥1280px 大屏
2xl: ≥1536px 超大屏
移动优先原则
/* 先写移动端,再用断点增强 */
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3">
<div>卡片 1</div>
<div>卡片 2</div>
<div>卡片 3</div>
</div>
响应式示例
<div class="flex flex-col md:flex-row items-center justify-between p-4">
<h1 class="text-xl md:text-2xl lg:text-3xl font-bold">标题</h1>
<nav class="hidden md:flex gap-4"> <!-- 移动端隐藏导航 -->
<a href="#">首页</a>
<a href="#">关于</a>
</nav>
</div>
响应式间距与字体
p-4 md:p-8 内边距随断点增大
text-sm md:text-base 字号渐进
w-full md:w-1/2 宽度适配
容器(Container)
<div class="container mx-auto px-4">
<!-- 居中且自适应最大宽度 -->
</div>
自定义断点
// tailwind.config.js
screens: {
"3xl": "1800px",
}Tailwind CSS 深色模式
Tailwind CSS 深色模式
用 dark: 变体实现深色模式,支持跟随系统或手动切换。
启用深色模式(v3)
// tailwind.config.js
module.exports = {
darkMode: "class", // 基于 class 切换
// 或 "media"(默认,跟随系统)
}
使用 dark: 变体
<div class="bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100">
<h1 class="dark:text-white">深色模式示例</h1>
<p class="text-gray-600 dark:text-gray-400">描述文字</p>
</div>
跟随系统(media)
// 无需配置,直接用
<div class="dark:bg-gray-900"></div>
// 浏览器自动根据系统外观切换
class 模式切换
// 在 html 根元素加 .dark 类
document.documentElement.classList.add("dark")
// JS 切换
const toggle = () => {
document.documentElement.classList.toggle("dark")
}
v4 深色模式
@custom-variant dark (&:where(.dark, .dark *));
// 同样在 html 加 .dark 类
完整示例
<body class="bg-white dark:bg-gray-900 transition-colors">
<header class="bg-gray-100 dark:bg-gray-800">...</header>
<main class="text-gray-900 dark:text-white">...</main>
</body>Tailwind CSS 重用样式
Tailwind CSS 重用样式
避免重复类名,用 @apply、组件抽象和组件库方式复用样式。
1. @apply(提取公共样式)
/* 在 CSS 中组合工具类 */
@layer components {
.btn-primary {
@apply bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded transition-colors;
}
.card {
@apply bg-white rounded-xl shadow-md p-6;
}
}
<button class="btn-primary">保存</button>
<div class="card">内容</div>
2. 前端组件抽象
// React 中封装组件
function Button({ children, className = "" }) {
return (
<button className={`px-4 py-2 bg-blue-500 text-white rounded ${className}`}>
{children}
</button>
);
}
3. @layer 指令
@layer base { /* 全局基础样式 */
h1 { @apply text-2xl font-bold; }
}
@layer components { /* 组件样式 */
.btn { @apply ...; }
}
@layer utilities { /* 自定义工具类 */
.text-shadow { text-shadow: 0 1px 2px rgba(0,0,0,0.3); }
}
4. 组件库配合
Headless UI(官方无样式组件)
shadcn/ui(React 组件,基于 Tailwind)
注意事项
@apply 在 v4 中继续支持
避免过度抽象:简单页面直接用类名更快Tailwind CSS 自定义样式
Tailwind CSS 自定义样式
扩展默认主题之外的颜色、字体、间距等设计令牌。
扩展颜色(v3)
// tailwind.config.js
theme: {
extend: {
colors: {
brand: "#6366f1",
ocean: {
50: "#eef2ff",
500: "#6366f1",
900: "#312e81",
},
},
},
}
// 使用
bg-brand / text-ocean-500 / border-ocean-900
扩展间距与尺寸
spacing: { 18: "4.5rem" } // p-18
width: { "13": "3.25rem" } // w-13
maxWidth: { "8xl": "96rem" } // max-w-8xl
扩展字体与字号
fontFamily: { display: ["Noto Sans SC", "sans-serif"] }
fontSize: { "2xs": "0.625rem" }
任意值(Arbitrary Values)
// 无需配置,直接写任意值
bg-[#1da1f2]
text-[24px]
w-[300px]
mt-[3.5rem]
grid-cols-[200px_1fr]
font-["Noto_Sans_SC"] // 下划线代替空格
v4 CSS-first 自定义
@theme {
--color-brand: #6366f1;
--radius-brand: 1.5rem;
}
自定义工具类(plugin)
const plugin = require("tailwindcss/plugin");
module.exports = {
plugins: [
plugin(function({ addUtilities }) {
addUtilities({
".text-shadow": { textShadow: "0 2px 4px rgba(0,0,0,0.2)" },
});
}),
],
};Tailwind CSS 指令与函数
Tailwind CSS 指令与函数
了解 @tailwind、@apply、@layer 指令与 theme() 等函数。
@tailwind 指令(v3)
@tailwind base; /* 基础重置样式 */
@tailwind components; /* 组件类 */
@tailwind utilities; /* 工具类 */
@tailwind variants; /* 变体(可选) */
@apply 指令
.btn {
@apply px-4 py-2 rounded bg-blue-500 text-white;
@apply hover:bg-blue-600; /* 可带变体 */
}
@layer 指令
@layer base {
/* 覆盖基础样式 */
body { @apply antialiased; }
}
@layer components {
/* 自定义组件类(比 utilities 优先级低) */
}
@layer utilities {
/* 自定义工具类(优先级最高) */
}
theme() 函数
/* 在 CSS 中引用配置值 */
.my-card {
color: theme("colors.blue.500");
padding: theme("spacing.4");
border-radius: theme("borderRadius.lg");
}
/* 带默认值 */
padding: theme("spacing.18", "3rem");
@screen 指令(旧版)
@screen md {
/* 等价于 @media (min-width: 768px) */
}
v4 变化
@import "tailwindcss" 替代 @tailwind 三指令
@theme 替代 theme() 部分用法
@custom-variant 自定义变体Tailwind CSS 布局类
Tailwind CSS 布局类
布局相关工具类:display、position、overflow、visibility。
Display
block display: block
inline-block display: inline-block
inline display: inline
flex display: flex
grid display: grid
hidden display: none
table display: table
<div class="hidden md:block">响应式显示</div>
Position
static / fixed / absolute / relative / sticky
<div class="relative">
<span class="absolute top-0 right-0">角标</span>
</div>
top-0 right-0 bottom-0 left-0 偏移
inset-0 全占位
z-10 z-20 z-50 层级
Flex 布局
flex-col / flex-row 方向
flex-wrap / flex-nowrap 换行
flex-1 flex-auto flex-none 伸缩
items-start / center / end 交叉轴
justify-center / between / end 主轴
gap-2 gap-4 间距
Grid 布局
grid-cols-1 / grid-cols-3 列数
grid-rows-2 行数
col-span-2 row-span-2 跨列行
place-items-center 双向居中
grid-flow-col 列流
其他
overflow-hidden / overflow-auto
overscroll-contain
object-cover(图片填充)
float-left / float-right(旧布局)Tailwind CSS Flexbox & Grid
Tailwind CSS Flexbox & Grid
Tailwind 对 Flexbox 和 Grid 提供了完整的工具类支持。
Flexbox 核心
<div class="flex items-center justify-between gap-4">
<div>左</div>
<div>中</div>
<div>右</div>
</div>
flex-row / flex-col 主轴方向
items-center 交叉轴居中
items-start / items-end / items-stretch
justify-start / center / between / around / evenly
flex-1 均分剩余空间
flex-shrink-0 不收缩
flex-grow 伸展
Grid 核心
<div class="grid grid-cols-3 gap-4">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
grid-cols-[200px_1fr] 自定义列
grid-template-rows → grid-rows-*
col-span-2 / row-span-2 合并单元格
col-start-2 / row-end-4 起止线
auto-cols-fr / auto-rows-min
响应式网格
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6">
<!-- 移动1列,平板2列,桌面4列 -->
</div>
实用示例:卡片网格
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
{cards.map(card => (
<div class="bg-white rounded-lg shadow p-6">{card.title}</div>
))}
</div>Tailwind CSS 间距
Tailwind CSS 间距
间距工具类基于 0.25rem 的倍率体系,覆盖 padding、margin、gap。
Padding(内边距)
p-0 0
p-1 0.25rem
p-2 0.5rem
p-4 1rem
p-8 2rem
p-16 4rem
px-4 水平
py-2 垂直
pt-4 pr-4 pb-4 pl-4 单方向
Margin(外边距)
m-0 m-2 m-4 m-8
mx-auto 水平居中(常用!)
mt-4 mb-4 ml-4 mr-4
-mt-4 负边距
Gap(间距,Grid/Flex)
gap-4 行+列间距
gap-x-4 列间距
gap-y-2 行间距
Space(兄弟间距)
space-x-4 水平相邻间距
space-y-4 垂直相邻间距
<div class="space-y-4">
<p>第一行</p>
<p>第二行</p>
</div>
自定义间距
// 任意值
p-[17px] mt-[3rem]
// 配置
extend: { spacing: { 18: "4.5rem" } }
注意
间距体系保持一致是 Tailwind 的设计优势
推荐使用默认尺度,避免随意写任意值Tailwind CSS 尺寸控制
Tailwind CSS 尺寸控制
宽度、高度、最小/最大尺寸的控制类。
宽度
w-0 w-4 w-16 w-64 固定宽度(0.25rem 倍数)
w-1/2 w-1/3 w-2/3 百分比
w-full 100%
w-screen 100vw
w-auto 自适应
max-w-md max-w-xl max-w-7xl 最大宽度
min-w-0 最小宽度0(防止溢出)
高度
h-4 h-16 h-64 固定高度
h-1/2 百分比
h-full 100%
h-screen 100vh
h-auto 自适应
max-h-64 min-h-screen 最大/最小高度
常用组合
<div class="w-full max-w-md mx-auto"> <!-- 居中限宽 -->
<div class="h-screen flex items-center justify-center"> <!-- 全屏居中 -->
<img class="w-full h-48 object-cover"> <!-- 图片填充裁剪 -->
尺寸与响应式
w-full md:w-1/2 lg:w-1/3 不同断点宽度
h-32 md:h-48
任意值
w-[350px] h-[200px] max-w-[90vw]
容器类
container mx-auto 自动最大宽度居中
size-16 同时设置宽高(3.2+ 新语法)Tailwind CSS 表格
Tailwind CSS 表格
用 Tailwind 工具类快速美化表格。
基础表格
<table class="w-full text-sm text-left">
<thead class="bg-gray-50 text-gray-600 uppercase">
<tr>
<th class="px-4 py-3">姓名</th>
<th class="px-4 py-3">城市</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200">
<tr class="hover:bg-gray-50">
<td class="px-4 py-3">Alice</td>
<td class="px-4 py-3">北京</td>
</tr>
</tbody>
</table>
表格专用类
table display: table
table-auto 自动列宽(默认)
table-fixed 固定列宽
border-collapse 合并边框
border-separate 分离边框
table-row / table-cell
斑马纹
<tr class="odd:bg-white even:bg-gray-50">
表格容器(溢出滚动)
<div class="overflow-x-auto rounded-lg border border-gray-200">
<table class="min-w-full divide-y divide-gray-200">...</table>
</div>
响应式表格
移动端: 外层 overflow-x-auto 横向滚动
或 md:table 恢复展示(移动端用卡片式布局)
综合美化
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">...Tailwind CSS 排版
Tailwind CSS 排版
文本相关的全部工具类:字号、字重、行高、字距、对齐。
字号
text-xs (12px) text-sm (14px)
text-base (16px) text-lg (18px)
text-xl (20px) text-2xl (24px)
text-3xl (30px) ... text-9xl (128px)
字重与样式
font-normal(400) font-medium(500)
font-semibold(600) font-bold(700)
font-light(300) font-thin(100)
italic / not-italic
underline / line-through / no-underline
行高与字距
leading-none leading-tight leading-normal leading-loose
tracking-tight tracking-normal tracking-wider(字间距)
对齐与换行
text-left text-center text-right text-justify
whitespace-nowrap / whitespace-pre-line
break-words / truncate(单行省略)
颜色
text-gray-500 text-blue-600 text-white
text-transparent bg-clip-text(渐变文字)
排版插件
npm install -D @tailwindcss/typography
// 配置
plugins: [require("@tailwindcss/typography")]
// 使用:给文章内容容器加 prose
<article class="prose prose-lg">
<h1>标题</h1>
<p>正文自动排版</p>
</article>
综合示例
<h1 class="text-3xl font-bold tracking-tight text-gray-900">大标题</h1>
<p class="mt-2 text-gray-500 leading-relaxed">描述文本...</p>Tailwind CSS 背景颜色
Tailwind CSS 背景颜色
背景色、渐变、背景图与透明度控制。
背景色
bg-white bg-black bg-transparent
bg-gray-100 bg-blue-500 bg-red-600
bg-opacity-50 背景透明度50%
bg-[#1da1f2] 任意色值
渐变
bg-gradient-to-r 向右渐变
bg-gradient-to-br 右下
from-blue-500 via-purple-500 to-pink-500
<div class="bg-gradient-to-r from-blue-500 to-purple-600 text-white p-8 rounded-xl">
渐变卡片
</div>
背景图
bg-cover 背景铺满
bg-contain 完整显示
bg-center 居中
bg-no-repeat 不重复
bg-[url('/img/bg.png')] 任意背景图
<div class="bg-cover bg-center h-64" style="background-image: url(...)">
背景位置与大小
bg-top bg-bottom bg-left bg-right
bg-fixed(固定)/ bg-scroll
bg-auto / bg-cover / bg-contain
半透明叠加
<div class="relative">
<img class="opacity-60" src="...">
<div class="absolute inset-0 bg-black/40"></div> <!-- 暗化层 -->
</div>
hover 变色
<button class="bg-blue-500 hover:bg-blue-700">按钮</button>Tailwind CSS 边框
Tailwind CSS 边框
边框宽度、颜色、样式与圆角控制。
边框宽度
border 1px(默认)
border-0 border-2 border-4 border-8
border-t border-r border-b border-l 单边
border-x border-y 水平/垂直
边框颜色
border-gray-200 border-blue-500 border-red-600
border-transparent
border-[#1da1f2] 任意颜色
边框样式
border-solid border-dashed border-dotted border-none
圆角
rounded 0.25rem
rounded-sm rounded-md rounded-lg rounded-xl rounded-2xl rounded-3xl
rounded-full 圆形/胶囊
rounded-t-lg rounded-b-lg rounded-l-lg rounded-r-lg
rounded-tl-full 单角
<button class="rounded-full px-6 py-2">胶囊按钮</button>
轮廓与分隔
outline-none 去除默认轮廓(配 focus:ring)
outline-2 outline-blue-500
divide-y divide-gray-200 列表分隔线
divide-x
聚焦环(Ring)
<input class="focus:ring-2 focus:ring-blue-500 focus:outline-none rounded border">
ring-1 ring-blue-500 常显环
ring-offset-2 环偏移
综合卡片
<div class="border border-gray-200 rounded-xl hover:border-blue-400 transition">
卡片内容
</div>Tailwind CSS 阴影
Tailwind CSS 阴影
盒子阴影与滤镜效果,让元素有层次感。
阴影等级
shadow-sm 小而柔和
shadow 默认
shadow-md 中等
shadow-lg 大
shadow-xl 特大
shadow-2xl 超大
shadow-inner 内阴影
shadow-none 无
<div class="shadow-lg p-6 rounded-xl">卡片</div>
彩色阴影
shadow-blue-500/50 带颜色和透明度
shadow-lg shadow-blue-200
悬停阴影
<div class="shadow-md hover:shadow-xl transition-shadow">
悬停阴影加深
</div>
滤镜类
blur-sm blur-md blur-lg 模糊
brightness-50 brightness-110 亮度
contrast-75 contrast-125 对比度
grayscale 灰度
saturate-150 饱和度
sepia 褐色
invert 反色
透明度
opacity-0 opacity-50 opacity-100
遮罩混合
mix-blend-multiply / mix-blend-overlay
bg-blend-multiply
综合示例
<div class="bg-white rounded-2xl shadow-xl overflow-hidden hover:shadow-2xl transition-shadow duration-300">
<img class="w-full h-48 object-cover" src="...">
<div class="p-6">内容</div>
</div>Tailwind CSS 动画
Tailwind CSS 动画
过渡、变换与内置动画,为界面添加动效。
过渡(Transition)
transition 基础过渡
transition-colors 仅颜色
transition-opacity 透明度
transition-transform 变换
transition-all 全部
duration-150 duration-300 duration-700 时长
ease-in ease-out ease-in-out 缓动
delay-100 delay-300 延迟
变换(Transform)
scale-95 scale-105 缩放
rotate-45 rotate-180 旋转
translate-x-4 -translate-y-2 平移
skew-x-6 倾斜
origin-center origin-top-left 变换原点
<button class="hover:scale-105 transition-transform">缩放按钮</button>
内置动画
animate-spin 旋转(加载)
animate-ping 脉冲
animate-pulse 呼吸
animate-bounce 弹跳
animate-none 关闭
组合动效
<div class="transition-all duration-300 hover:scale-105 hover:shadow-2xl">卡片</div>
<button class="transition-colors duration-200 hover:bg-blue-600 active:scale-95">按钮</button>
自定义动画
// tailwind.config.js
theme: {
extend: {
keyframes: {
fadeIn: {
"0%": { opacity: "0" },
"100%": { opacity: "1" },
},
},
animation: {
"fade-in": "fadeIn 0.5s ease-in-out",
},
},
}
// 使用
<div class="animate-fade-in">
入场动画配合
<div class="animate-pulse">加载骨架屏</div>
<div class="animate-spin w-6 h-6 border-2 border-blue-500 border-t-transparent rounded-full"></div> <!-- 转圈加载 -->
注意
motion-reduce:transition-none 尊重用户减少动画偏好
避免过度动画影响体验