Tailwind CSS 常用用法速查
前言
Tailwind CSS 是一个实用优先的 CSS 框架。
它不提供预定义组件,而是提供大量原子化工具类,让你直接在 HTML 中组合出任意样式。
相比手写 CSS,这种方式省去了起类名、切换文件、处理样式冲突的烦恼,开发效率很高。
本文梳理日常开发中最常用到的 Tailwind 用法,涵盖布局、间距、排版、颜色、响应式、伪类和自定义配置,适合快速查阅。
安装
以 Vite + React 项目为例,安装 Tailwind v4 只需一条命令:
1 | npm install tailwindcss @tailwindcss/vite |
然后在 vite.config.ts 中注册插件:
1 | import { defineConfig } from 'vite' |
在 CSS 入口文件中引入 Tailwind:
1 | @import "tailwindcss"; |
配置完成后,所有工具类即可在项目中直接使用。
布局
Tailwind 提供了完整的 Flexbox 和 Grid 工具类,足以覆盖绝大多数布局场景。
Flex 布局
使用 flex 开启弹性布局,配合 items-* 和 justify-* 控制对齐方式:
1 | <!-- 水平居中 + 垂直居中 --> |
flex-col 可将主轴切换为纵向,gap-4 统一控制子元素间距。
Flex 子项
容器上的工具类控制整体布局,子项上的工具类控制每个元素的伸缩与对齐。
flex-1 让子项等分剩余空间,flex-none 让子项固定不动:
1 | <div class="flex"> |
basis-* 设置子项的初始尺寸,适合按比例分配:
1 | <div class="flex"> |
flex-grow 允许拉伸,flex-shrink-0 禁止压缩:
1 | <div class="flex"> |
order-* 控制排列顺序,-order-first 移到最前,order-last 移到最后:
1 | <div class="flex"> |
self-* 单独覆盖某个子项的对齐方式:
1 | <div class="flex items-start"> |
常用子项类名速查:flex-1(等分空间)、flex-auto(按内容分配)、flex-none(固定不动)、flex-grow(允许拉伸)、flex-grow-0(禁止拉伸)、flex-shrink-0(禁止压缩)、basis-full(独占一行)、self-start/center/end/stretch(单独覆盖对齐)。
Grid 布局
使用 grid 开启网格布局,grid-cols-* 定义列数:
1 | <!-- 三列等宽 --> |
也可以用 grid-cols-[200px_1fr] 这种方括号写法自定义列宽,适合侧边栏 + 内容区的经典布局。
间距
Tailwind 用 p-* 和 m-* 设置内边距和外边距,数值对应 0.25rem 的倍数。
p-4等于padding: 1remm-2等于margin: 0.5rempx-4仅设置水平方向,py-4仅设置垂直方向mt-8设置上边距,mr-auto实现右 margin 自动撑开
负边距用 -m-2 前缀即可。
1 | <div class="px-6 py-4 m-2"> |
space-x-* 和 space-y-* 可以在不使用 gap 的情况下给子元素统一加间距:
1 | <div class="flex space-x-4"> |
文字与排版
文字相关工具类覆盖了字号、粗细、颜色、对齐、行高和字间距。
1 | <h1 class="text-2xl font-bold text-gray-900">标题</h1> |
常用字号:text-xs(12px)、text-sm(14px)、text-base(16px)、text-lg(18px)、text-xl(20px)、text-2xl(24px)。
文字截断用 truncate,多行截断需要配合自定义:
1 | <!-- 单行截断 --> |
颜色与背景
Tailwind 内置了完整的调色板,格式为 {属性}-{颜色名}-{色阶}。
1 | <!-- 文字颜色 --> |
透明度通过 / 语法设置:bg-blue-500/50 表示 50% 透明度的蓝色背景。
圆角与阴影
圆角用 rounded-*,阴影用 shadow-*:
1 | <div class="rounded-lg shadow-md p-6 bg-white"> |
rounded-full 适用于圆形头像。shadow-sm、shadow-md、shadow-lg、shadow-xl 从轻到重递增。
尺寸
宽度和高度使用 w-* 和 h-*,支持固定值和百分比。
1 | <!-- 固定宽度 --> |
w-screen 和 h-screen 对应视口宽高,w-fit 和 w-min、w-max 分别对应内容尺寸和最大内容尺寸。
| Class | Properties |
|---|---|
| w-0 | width: 0px; |
| w-px | width: 1px; |
| w-0.5 | width: 0.125rem; /* 2px */ |
| w-1 | width: 0.25rem; /* 4px */ |
| w-1.5 | width: 0.375rem; /* 6px */ |
| w-2 | width: 0.5rem; /* 8px */ |
| w-auto | width: auto; |
| w-1/2 | width: 50%; |
| w-1/3 | width: 33.333333%; |
| w-1/4 | width: 25%; |
| w-1/6 | width: 16.666667%; |
| w-1/12 | width: 8.333333%; |
| w-full | width: 100%; |
| w-screen | width: 100vw; |
| w-svw | width: 100svw; |
| w-lvw | width: 100lvw; |
| w-dvw | width: 100dvw; |
| w-min | width: min-content; |
| w-max | width: max-content; |
| w-fit | width: fit-content; |
溢出
overflow-* 控制元素内容溢出时的行为。
1 | <!-- 隐藏溢出 --> |
也可以单独控制某一方向:
1 | <!-- 仅垂直方向滚动 --> |
常用搭配:overflow-hidden 配合 truncate 做文本截断;overflow-auto 配合 max-h-96 做固定高度可滚动区域;overflow-x-auto 让表格或代码块在小屏上横向滚动。
响应式
Tailwind 采用移动优先策略,默认样式针对最小屏幕,通过前缀在更大屏幕上覆盖。
常用断点:sm(640px)、md(768px)、lg(1024px)、xl(1280px)、2xl(1536px)。
1 | <!-- 小屏单列,中屏两列,大屏四列 --> |
响应式前缀可以叠加在任意工具类上,如 md:text-lg、lg:p-8。
伪类与交互状态
Tailwind 将常见伪类映射为前缀,无需手写 CSS 选择器。
1 | <!-- hover --> |
disabled:opacity-50 设置禁用态透明度,first:mt-0 为列表第一项去掉上边距,odd:bg-gray-50 实现斑马纹。
过渡与动画
过渡效果通过 transition 类加上持续时间和属性控制:
1 | <button class="bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded |
transition-colors 仅过渡颜色属性,transition-all 过渡所有属性。duration-150、duration-300 控制时长,ease-in、ease-out、ease-in-out 控制缓动。
内置动画类:
1 | <div class="animate-spin">旋转</div> |
自定义配置
当内置工具类不够用时,可以通过 CSS 变量或 @theme 指令扩展。
在 CSS 中自定义主题变量:
1 | @import "tailwindcss"; |
配置完成后即可使用 bg-primary、text-primary-dark、font-sans 等类名。
也可以在 HTML 中用方括号写法直接写任意值:
1 | <div class="top-[117px]">精确偏移</div> |
方括号写法适合一次性或调试场景,复用频率高的值建议提取到主题配置中。
总结
以上是 Tailwind CSS 日常开发中最高频的用法。
核心思路就是用工具类直接在 HTML 中声明样式,保持开发时注意力不离开模板文件。
常用模式记住即可,不常用的类名查阅官方文档即可快速找到。
建议在实际项目中配合 IDE 的 Tailwind 插件获得自动补全和排序,开发体验会更加顺畅。