Tailwind CSS 是一个实用优先的 CSS 框架,通过预定义的原子类名快速构建界面,其类名遵循命名规则+属性值的核心逻辑。以下是 Tailwind 核心类名体系的完整梳理,涵盖布局、样式、响应式等所有核心维度,并说明类名写法和含义:
一、核心命名规则
Tailwind 类名的通用格式:
复制代码
[前缀]:[属性值] // 基础格式(如 p-4、bg-red-500)
[响应式前缀]:[前缀]:[属性值] // 响应式(如 md:p-6)
[状态前缀]:[前缀]:[属性值] // 状态(如 hover:bg-red-600)
[变体前缀]/[值]:[前缀]:[属性值] // 变体(如 dark:bg-gray-800、rtl:float-right)
二、基础布局类
1. 尺寸(Width/Height)
| 类名写法 |
含义 |
示例 |
| w-[值] |
宽度 |
w-full(100%)、w-1/2(50%)、w-20(5rem)、w-auto、w-screen(视口宽度)、w-fit(自适应内容) |
| h-[值] |
高度 |
h-full、h-32(8rem)、h-screen、h-auto、h-fit |
| min-w-[值] |
最小宽度 |
min-w-0、min-w-full、min-w-[200px] |
| min-h-[值] |
最小高度 |
min-h-screen、min-h-[300px] |
| max-w-[值] |
最大宽度(预设容器) |
max-w-sm(640px)、max-w-xl(1280px)、max-w-none |
| max-h-[值] |
最大高度 |
max-h-full、max-h-[500px] |
2. 边距(Margin/Padding)
| 类名写法 |
含义 |
示例 |
| p-[值] |
四周边距 |
p-4(1rem)、p-0、p-[10px] |
| px-[值] |
水平边距(左右) |
px-6、px-auto |
| py-[值] |
垂直边距(上下) |
py-8、py-[15px] |
| pt/pr/pb/pl-[值] |
上/右/下/左边距 |
pt-2、pl-[8px] |
| m-[值] |
四边外边距 |
m-4、m-0、m-auto(水平居中) |
| mx-[值] |
水平外边距 |
mx-auto、mx-6 |
| my-[值] |
垂直外边距 |
my-8、my-[10px] |
| mt/mr/mb/ml-[值] |
上/右/下/左外边距 |
mt-3、mb-[-5px](负边距) |
3. 定位(Position)
| 类名写法 |
含义 |
示例 |
| static/relative/absolute/fixed/sticky |
定位类型 |
relative、absolute |
| top/right/bottom/left-[值] |
定位偏移 |
top-0、right-4、left-1/2、bottom-[-10px] |
| z-[值] |
z-index |
z-10、z-50、z-auto、z-[999] |
4. 显示与溢出(Display/Overflow)
| 类名写法 |
含义 |
示例 |
| block/inline/inline-block/flex/inline-flex/grid/inline-grid |
显示类型 |
flex、block、hidden |
| overflow-[值] |
溢出处理 |
overflow-hidden、overflow-auto、overflow-scroll、overflow-x-hidden |
| truncate |
单行文本截断(省略号) |
truncate |
| text-ellipsis |
省略号(需配合overflow) |
text-ellipsis |
| whitespace-[值] |
空白处理 |
whitespace-nowrap(不换行) |
三、弹性布局 & 网格布局
1. Flex 布局
| 类名写法 |
含义 |
示例 |
| flex-direction-[值] |
排列方向 |
flex-row(默认)、flex-col、flex-row-reverse |
| flex-wrap-[值] |
换行 |
flex-wrap、flex-nowrap |
| justify-content-[值] |
主轴对齐 |
justify-center、justify-between、justify-around、justify-start |
| items-[值] |
交叉轴对齐 |
items-center、items-start、items-end、items-baseline |
| content-[值] |
多行主轴对齐 |
content-center、content-between |
| flex-[值] |
伸缩比例 |
flex-1、flex-auto、flex-none |
| order-[值] |
排列顺序 |
order-0、order-1、order-[-1] |
| gap-[值] |
子元素间距 |
gap-4、gap-x-2、gap-y-6 |
2. Grid 布局
| 类名写法 |
含义 |
示例 |
| grid-cols-[值] |
列数 |
grid-cols-3(3列)、grid-cols-1/2(自定义)、grid-cols-[1fr,2fr] |
| grid-rows-[值] |
行数 |
grid-rows-2、grid-rows-[auto,1fr] |
| col-span-[值] |
列跨度 |
col-span-2、col-span-full(占满) |
| row-span-[值] |
行跨度 |
row-span-3、row-span-full |
| justify-items-[值] |
单元格水平对齐 |
justify-items-center、justify-items-start |
| align-items-[值] |
单元格垂直对齐 |
align-items-center |
| place-items-[值] |
单元格居中(合并) |
place-items-center |
| grid-flow-[值] |
自动排列方向 |
grid-flow-row、grid-flow-col |
四、视觉样式
1. 背景
| 类名写法 |
含义 |
示例 |
| bg-[颜色值] |
背景色 |
bg-red-500、bg-gray-100、bg-[#f0f0f0]、bg-transparent |
| bg-opacity-[值] |
背景透明度 |
bg-opacity-50(50%)、bg-opacity-[75%] |
| bg-gradient-[方向] |
渐变背景 |
bg-gradient-to-r(从左到右)、bg-gradient-to-br(左下到右上) |
| bg-[url] |
背景图片 |
bg-[url('/img.jpg')] |
| bg-repeat-[值] |
背景重复 |
bg-repeat、bg-no-repeat、bg-repeat-x |
| bg-position-[值] |
背景位置 |
bg-center、bg-top-right、bg-[20px_30px] |
| bg-size-[值] |
背景尺寸 |
bg-cover、bg-contain、bg-[100px_200px] |
2. 文本样式
| 类名写法 |
含义 |
示例 |
| text-[颜色值] |
文本颜色 |
text-blue-600、text-[#333]、text-white |
| text-opacity-[值] |
文本透明度 |
text-opacity-80 |
| text-[大小] |
字体大小 |
text-sm(0.875rem)、text-xl(1.25rem)、text-3xl、text-[20px] |
| font-[权重/样式] |
字体样式 |
font-bold(700)、font-medium(500)、font-normal、font-italic、font-sans(无衬线) |
| leading-[值] |
行高 |
leading-normal、leading-loose、leading-[1.8] |
| tracking-[值] |
字间距 |
tracking-tight、tracking-wide、tracking-[2px] |
| text-[对齐] |
文本对齐 |
text-left、text-center、text-right、text-justify |
| text-[转换] |
文本转换 |
text-uppercase(大写)、text-lowercase、text-capitalize(首字母大写) |
3. 边框
| 类名写法 |
含义 |
示例 |
| border-[值] |
边框宽度 |
border(1px)、border-2、border-0、border-t(仅上边框) |
| border-[颜色] |
边框颜色 |
border-gray-300、border-[#ddd]、border-transparent |
| border-opacity-[值] |
边框透明度 |
border-opacity-50 |
| rounded-[值] |
圆角 |
rounded(默认)、rounded-lg、rounded-full(圆形)、rounded-tl-[10px](左上圆角) |
| outline-[值] |
外轮廓 |
outline-none、outline-2、outline-blue-500 |
4. 阴影
| 类名写法 |
含义 |
示例 |
| shadow-[值] |
阴影 |
shadow-sm、shadow、shadow-lg、shadow-xl、shadow-none |
| shadow-[颜色] |
阴影颜色 |
shadow-red-500/50(半透明)、shadow-[#000]/20 |
| ring-[值] |
聚焦环(替代outline) |
ring-2、ring-blue-500、ring-offset-2(环偏移) |
5. 交互样式
| 类名写法 |
含义 |
示例 |
| cursor-[值] |
鼠标指针 |
cursor-pointer、cursor-default、cursor-not-allowed |
| pointer-events-[值] |
指针事件 |
pointer-events-none(禁用点击)、pointer-events-auto |
| select-[值] |
文本选择 |
select-none(禁止选择)、select-text |
| opacity-[值] |
整体透明度 |
opacity-50、opacity-100、opacity-0 |
五、响应式与状态变体
1. 响应式前缀(基于断点)
| 前缀 |
断点宽度 |
含义 |
示例 |
| sm: |
≥640px |
小屏幕 |
sm:flex |
| md: |
≥768px |
中等屏幕 |
md:w-1/2 |
| lg: |
≥1024px |
大屏幕 |
lg:px-8 |
| xl: |
≥1280px |
超大屏幕 |
xl:grid-cols-4 |
| 2xl: |
≥1536px |
特大屏幕 |
2xl:text-4xl |
2. 状态前缀
| 前缀 |
含义 |
示例 |
| hover: |
鼠标悬停 |
hover:bg-blue-600 |
| focus: |
焦点(键盘/点击) |
focus:ring-2 |
| active: |
激活状态 |
active:bg-blue-700 |
| focus-visible: |
可视焦点 |
focus-visible:outline-none |
| disabled: |
禁用状态 |
disabled:opacity-50 |
| checked: |
选中状态(单选/复选) |
checked:bg-green-500 |
| visited: |
链接已访问 |
visited:text-purple-600 |
| group-hover: |
父元素hover |
group-hover:text-white |
3. 特殊变体
| 前缀 |
含义 |
示例 |
| dark: |
暗黑模式 |
dark:bg-gray-800 |
| rtl: |
从右到左布局 |
rtl:float-right |
| motion-safe: |
开启动画时生效 |
motion-safe:animate-fade |
| print: |
打印样式 |
print:hidden |
六、动画与过渡
1. 过渡(Transition)
| 类名写法 |
含义 |
示例 |
| transition |
启用过渡 |
transition |
| transition-[属性] |
过渡属性 |
transition-colors、transition-all、transition-[opacity,transform] |
| duration-[值] |
过渡时长 |
duration-300、duration-[500ms] |
| ease-[值] |
过渡曲线 |
ease-in、ease-out、ease-in-out |
2. 动画(Animation)
| 类名写法 |
含义 |
示例 |
| animate-[动画名] |
启用动画 |
animate-spin(旋转)、animate-pulse(脉冲)、animate-bounce(弹跳) |
| @keyframes 自定义 |
自定义动画 |
animate-[my-animation](需自定义keyframe) |
七、自定义类名
Tailwind 支持通过 [] 编写任意值的类名,覆盖预设值:
- 数值自定义:
w-[200px]、h-[50vh]、m-[1.5rem]
- 颜色自定义:
bg-[#123456]、text-[rgb(255,0,0)]
- 复合属性:
grid-cols-[1fr,2fr,1fr]、shadow-[0_4px_6px_rgba(0,0,0,0.1)]
八、核心速记规则
- 缩写原则:常用属性缩写(p=padding、m=margin、w=width、h=height、bg=background、text=color 等);
- 数值映射 :预设数值(如 4=1rem、8=2rem)基于
rem 单位,适配响应式;
- 颜色体系:颜色名+权重(如 red-500 是标准红,red-600 更深),支持透明通道(如 red-500/50);
- 重置类 :
reset 相关(如 border-0、m-0、p-0)用于清除默认样式。
补充说明
- 完整类名列表可参考 Tailwind 官方文档(含最新特性);
- 可通过
tailwind.config.js 自定义预设值(如颜色、尺寸、断点);
- 生产环境需开启 PurgeCSS 或 JIT 模式,移除未使用的类名,减小体积。
以上覆盖了 Tailwind CSS 99% 的核心类名体系,遵循"原子化、语义化、可扩展"的原则,掌握后可快速构建任意界面样式。
ps:AI生成,供学习参考