一、布局 (Layout)
这是构建页面骨架的基础。
| 功能 | 常用类名 | 说明 |
|---|---|---|
| Display | block, inline-block, inline, flex, grid, hidden | 控制元素的 display 属性。hidden (即 display: none;) 非常常用。 |
| Position | static, relative, absolute, fixed, sticky | 控制元素的 position 属性。 |
| 定位 | top-0, left-0, right-0, bottom-0 | 与 position 配合使用,设置元素位置。数值遵循比例尺。 |
| 全覆盖 | inset-0 | 相当于 top-0 right-0 bottom-0 left-0,常用于创建蒙层。 |
| Z-Index | z-0, z-10, z-20, z-30, z-40, z-50 | 控制元素的堆叠顺序。数值越大,越靠前。 |
示例: 创建一个固定在顶部的导航栏
<nav class="fixed top-0 left-0 right-0 h-16 bg-white z-50">...</nav>二、尺寸 (Sizing)
控制元素的宽度和高度。
| 功能 | 常用类名 | 说明 |
|---|---|---|
| 宽度 (Width) | w-4, w-32, w-64, w-auto, w-full, w-screen | w-full (100% 宽度) 和 w-screen (100% 视口宽度) 最常用。 |
w-1/2, w-1/3, w-2/3, w-1/4, … | 百分比宽度,用于栅格系统。 | |
| 高度 (Height) | h-4, h-32, h-64, h-auto, h-full, h-screen | h-full 和 h-screen 最常用。 |
| 最大/最小尺寸 | max-w-*, min-w-*, max-h-*, min-h-* | max-w-screen-lg 或 max-w-7xl 常用于限制内容区域的最大宽度,使其在超大屏幕上不会过宽。 |
示例: 创建一个居中且有最大宽度的内容容器
<div class="max-w-4xl mx-auto">
<!-- mx-auto 会在后面讲到 -->
...内容...
</div>三、边距 (Spacing)
这是 Tailwind 中使用频率最高的类别之一。
| 功能 | 类名前缀 | 示例 | 说明 |
|---|---|---|---|
| 内边距 (Padding) | p-* | p-4 | 四个方向 |
px-* | px-6 | 水平方向 (left & right) | |
py-* | py-2 | 垂直方向 (top & bottom) | |
pt-, pr-, pb-, pl-* | pt-3 | 单个方向 (top, right, bottom, left) | |
| 外边距 (Margin) | m-* | m-4 | 四个方向 |
mx-* | mx-auto | 水平方向。mx-auto 是水平居中块级元素的法宝! | |
my-* | my-2 | 垂直方向 | |
mt-, mr-, mb-, ml-* | mb-5 | 单个方向 | |
| 项目间距 | space-x-* , space-y-* | space-y-4 | 给除第一个子元素外的所有直接子元素添加 margin-left 或 margin-top,用于创建均匀的列表间距,非常方便。 |
示例: 一个带内边距和子元素间距的列表
<ul class="p-4 space-y-2 bg-gray-100">
<!-- ul 有内边距,每个 li 之间有垂直间距 -->
<li>项目 1</li>
<li>项目 2</li>
<li>项目 3</li>
</ul>四、排版 (Typography)
控制所有与文本相关的样式。
| 功能 | 类名前缀 | 示例 |
|---|---|---|
| 字体大小 | text-* | text-sm, text-base (默认), text-lg, text-xl … text-9xl |
| 字体粗细 | font-* | font-light, font-normal, font-medium, font-bold, font-black |
| 字体颜色 | text-* | text-black, text-white, text-gray-500, text-blue-600 |
| 文本对齐 | text-* | text-left, text-center, text-right, text-justify |
| 行高 | leading-* | leading-none, leading-tight, leading-normal, leading-loose |
| 文本修饰 | underline, no-underline, line-through | |
| 文本溢出 | truncate | 单行文本溢出显示省略号 (…) |
| 字母间距 | tracking-* | tracking-wider |
示例: 一个标准的文章标题和段落
<h1 class="text-3xl font-bold text-gray-900 mb-2">文章标题</h1>
<p class="text-base text-gray-600 leading-relaxed">这里是段落内容...</p>五、Flexbox & Grid
用于构建现代、复杂的布局。
Flexbox
| 功能 | 常用类名 | 说明 |
|---|---|---|
| 启用 Flex | flex | 将容器设置为 display: flex |
| 方向 | flex-row, flex-col | 主轴方向(水平或垂直) |
| 对齐 (交叉轴) | items-start, items-center, items-end | items-center 最常用,用于垂直居中 |
| 对齐 (主轴) | justify-start, justify-center, justify-end, justify-between, justify-around | justify-between 和 justify-center 最常用 |
| 换行 | flex-wrap, flex-nowrap, flex-wrap-reverse | |
| 间距 | gap-4, gap-x-2, gap-y-8 | 在 flex/grid 项目之间创建均匀的间隙,比 space-* 更现代、更强大。 |
| 伸缩 | flex-1, flex-auto, flex-none, grow, shrink | 控制 flex 项目的伸缩行为。flex-1 (即 flex: 1 1 0%) 非常常用。 |
示例: 一个垂直居中的三栏布局
<div class="flex items-center justify-between gap-4">
<div>左侧</div>
<div>中间</div>
<div>右侧</div>
</div>Grid
| 功能 | 常用类名 | 说明 |
|---|---|---|
| 启用 Grid | grid | 将容器设置为 display: grid |
| 定义列数 | grid-cols-1, grid-cols-2, grid-cols-3, … | 最常用的 grid 类,快速创建网格布局 |
| 定义行数 | grid-rows-1, grid-rows-2, … | |
| 跨列/跨行 | col-span-2, row-span-3 | 让单个网格项目占据多列或多行 |
| 间距 | gap-4, gap-x-2, gap-y-8 | 与 Flexbox 中的 gap 完全相同 |
示例: 一个响应式的照片墙
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
<!-- 在小屏幕上是2列,中等屏幕及以上是4列 -->
<img src="..." />
<img src="..." />
<img src="..." />
<img src="..." />
</div>六、背景、边框和效果
用于美化元素。
| 功能 | 类名前缀 | 示例 | 说明 |
|---|---|---|---|
| 背景颜色 | bg-* | bg-white, bg-gray-100, bg-blue-500 | 颜色命名与 text-* 类似 |
| 边框圆角 | rounded-* | rounded-sm, rounded, rounded-lg, rounded-full | rounded-full 用于创建圆形 |
| 边框宽度 | border, border-2, border-t-4 | border 默认是 1px。可以指定方向 t, r, b, l。 | |
| 边框颜色 | border-* | border-gray-300, border-transparent | |
| 阴影 | shadow-* | shadow-sm, shadow, shadow-md, shadow-lg, shadow-xl | 快速添加漂亮的阴影效果 |
| 不透明度 | opacity-* | opacity-0, opacity-50, opacity-100 | 控制元素及其子元素的不透明度 |
示例: 创建一个带有圆角、边框和阴影的卡片
<div class="bg-white p-6 rounded-lg border border-gray-200 shadow-md">
...卡片内容...
</div>总结
掌握以上这些基础效用类,你就可以像搭乐高积木一样快速、自由地构建任何界面。
学习建议:
- 安装 VS Code 插件: 安装 “Tailwind CSS IntelliSense” 插件,它会自动提示类名、显示对应的 CSS,极大提高开发效率。
- 实践出真知: 打开 Tailwind Play (play.tailwindcss.com) 或者在你的项目中,尝试用这些类去复刻一个你喜欢的网站组件,比如按钮、导航栏、卡片等。
- 查阅文档: 遇到不确定的类,第一反应应该是去查阅 Tailwind CSS 的官方文档,它的文档做得非常出色,搜索功能强大。
Last updated on