1. 什么是 Tailwind CSS?
Tailwind CSS 是一个功能优先的 CSS 框架,通过预定义的类名来快速构建样式,无需写传统的 CSS 代码。
官网地址
本文安装不做赘述,官网介绍的很详细了:
2. 基本使用方式
📚 目录
1. Tailwind CSS 的核心理念
什么是功能优先(Utility-First)?
传统CSS写法:
.card {
background: white;
padding: 1rem;
border-radius: 0.5rem;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
Tailwind写法:
<div class="bg-white p-4 rounded-lg shadow-md">
优势:
- 不用起类名(告别命名困难症)
- 样式直观可见
- 避免CSS冗余
- 响应式设计更简单
2. 数字系统的秘密
所有数字都遵循一套统一的规律。
2.1 基础单位系统
Tailwind 使用 0.25rem 作为基础单位,数字就是倍数:
数字 | rem值 | px值(1rem=16px) | 实际用途 |
---|---|---|---|
1 |
0.25rem | 4px | 极小间距 |
2 |
0.5rem | 8px | 小间距 |
4 |
1rem | 16px | 标准间距 |
6 |
1.5rem | 24px | 中等间距 |
8 |
2rem | 32px | 大间距 |
12 |
3rem | 48px | 很大间距 |
16 |
4rem | 64px | 超大间距 |
记忆技巧:数字 × 4 = 像素值
2.2 实际应用示例
<!-- 内边距示例 -->
<div class="p-1"> <!-- padding: 4px -->
<div class="p-2"> <!-- padding: 8px -->
<div class="p-4"> <!-- padding: 16px -->
<div class="p-8"> <!-- padding: 32px -->
<!-- 外边距示例 -->
<div class="m-4"> <!-- margin: 16px -->
<div class="mt-6"> <!-- margin-top: 24px -->
<div class="mb-8"> <!-- margin-bottom: 32px -->
<!-- 宽高示例 -->
<div class="w-16 h-16"> <!-- 64px × 64px -->
<div class="w-32 h-20"> <!-- 128px × 80px -->
2.3 特殊数值
除了基础倍数,还有一些特殊值:
<!-- 百分比 -->
<div class="w-1/2"> <!-- width: 50% -->
<div class="w-1/3"> <!-- width: 33.333% -->
<div class="w-2/3"> <!-- width: 66.666% -->
<div class="w-full"> <!-- width: 100% -->
<!-- 视口单位 -->
<div class="w-screen"> <!-- width: 100vw -->
<div class="h-screen"> <!-- height: 100vh -->
<!-- 自动值 -->
<div class="w-auto"> <!-- width: auto -->
<div class="mx-auto"> <!-- margin-left: auto; margin-right: auto; -->
3. 颜色系统详解
3.1 颜色命名规律
Tailwind 的颜色系统非常科学,格式为:颜色名-明度数字
基础颜色
gray
- 灰色red
- 红色blue
- 蓝色green
- 绿色yellow
- 黄色purple
- 紫色pink
- 粉色indigo
- 靛蓝
明度数字(50-950)
数字 | 含义 | 使用场景 |
---|---|---|
50 |
最浅色 | 背景色 |
100-200 |
很浅 | 浅色背景 |
300-400 |
浅色 | 边框、禁用状态 |
500 |
标准色 | 主要颜色 |
600-700 |
深色 | 按钮、链接 |
800-900 |
很深 | 文字色 |
950 |
最深色 | 深色文字 |
3.2 颜色实战示例
<!-- 背景色渐变:从浅到深 -->
<div class="bg-blue-50"> <!-- 非常浅的蓝色背景 -->
<div class="bg-blue-100"> <!-- 浅蓝色背景 -->
<div class="bg-blue-500"> <!-- 标准蓝色背景 -->
<div class="bg-blue-700"> <!-- 深蓝色背景 -->
<div class="bg-blue-900"> <!-- 很深的蓝色背景 -->
<!-- 文字颜色 -->
<h1 class="text-gray-900"> <!-- 深色标题 -->
<p class="text-gray-600"> <!-- 中等灰色正文 -->
<span class="text-gray-400"><!-- 浅灰色辅助文字 -->
<!-- 边框颜色 -->
<div class="border border-gray-300"> <!-- 浅灰色边框 -->
<div class="border-2 border-blue-500"> <!-- 蓝色粗边框 -->
3.3 颜色组合建议
<!-- 经典搭配 -->
<div class="bg-white text-gray-900 border border-gray-200">
<!-- 白底黑字,浅灰边框 -->
</div>
<button class="bg-blue-600 hover:bg-blue-700 text-white">
<!-- 蓝色按钮,悬停时变深 -->
</button>
<div class="bg-gray-50 text-gray-800">
<!-- 浅灰背景,深灰文字 -->
</div>
4. 常用属性分类解析
4.1 布局相关
Display(显示类型)
<div class="block"> <!-- display: block -->
<div class="inline"> <!-- display: inline -->
<div class="flex"> <!-- display: flex -->
<div class="grid"> <!-- display: grid -->
<div class="hidden"> <!-- display: none -->
Flexbox
<div class="flex justify-center items-center">
<!-- 水平垂直居中 -->
</div>
<div class="flex justify-between items-start">
<!-- 两端对齐,顶部对齐 -->
</div>
<div class="flex flex-col space-y-4">
<!-- 垂直排列,间距16px -->
</div>
Grid
<div class="grid grid-cols-3 gap-4">
<!-- 3列网格,间距16px -->
</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4">
<!-- 响应式网格:手机1列,平板2列,桌面4列 -->
</div>
4.2 尺寸相关
宽度
<div class="w-4"> <!-- 16px -->
<div class="w-1/2"> <!-- 50% -->
<div class="w-full"> <!-- 100% -->
<div class="w-screen"> <!-- 100vw -->
<div class="max-w-md"> <!-- max-width: 28rem -->
高度
<div class="h-16"> <!-- 64px -->
<div class="h-full"> <!-- 100% -->
<div class="h-screen"> <!-- 100vh -->
<div class="min-h-screen"> <!-- min-height: 100vh -->
4.3 间距相关
内边距(Padding)
<div class="p-4"> <!-- 全方向 16px -->
<div class="px-6"> <!-- 左右 24px -->
<div class="py-2"> <!-- 上下 8px -->
<div class="pt-8"> <!-- 顶部 32px -->
<div class="pr-4"> <!-- 右侧 16px -->
<div class="pb-6"> <!-- 底部 24px -->
<div class="pl-2"> <!-- 左侧 8px -->
外边距(Margin)
<div class="m-4"> <!-- 全方向 16px -->
<div class="mx-auto"> <!-- 左右居中 -->
<div class="my-8"> <!-- 上下 32px -->
<div class="mt-4"> <!-- 顶部 16px -->
<div class="-mt-2"> <!-- 负边距:-8px -->
5. 响应式设计
5.1 断点系统
Tailwind 使用移动优先的响应式设计:
前缀 | 最小宽度 | 设备类型 |
---|---|---|
无前缀 | 0px | 所有设备 |
sm: |
640px | 手机横屏+ |
md: |
768px | 平板+ |
lg: |
1024px | 桌面+ |
xl: |
1280px | 大桌面+ |
2xl: |
1536px | 超大屏+ |
5.2 响应式实例
<!-- 响应式文字大小 -->
<h1 class="text-2xl md:text-4xl lg:text-6xl">
<!-- 手机24px,平板36px,桌面60px -->
</h1>
<!-- 响应式布局 -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3">
<!-- 手机1列,平板2列,桌面3列 -->
</div>
<!-- 响应式显示隐藏 -->
<div class="hidden md:block">
<!-- 手机隐藏,平板及以上显示 -->
</div>
<!-- 响应式间距 -->
<div class="p-4 lg:p-8">
<!-- 手机16px内边距,桌面32px内边距 -->
</div>
6. 实战案例
让我们用你项目中的实际代码来分析:
6.1 英雄区域分析
<section class="hero-section relative overflow-hidden">
<div class="container-layout relative z-10 py-20 lg:py-32">
<div class="grid lg:grid-cols-2 gap-16 items-center">
逐个解析:
relative
→position: relative
overflow-hidden
→overflow: hidden
py-20
→padding-top: 80px; padding-bottom: 80px
lg:py-32
→ 大屏幕时上下内边距变为128pxgrid
→display: grid
lg:grid-cols-2
→ 大屏幕时2列布局gap-16
→ 网格间距64pxitems-center
→ 垂直居中对齐
6.2 卡片组件分析
<div class="bg-white rounded-2xl p-6 hover:shadow-lg transition-all">
<div class="w-12 h-12 bg-blue-600 rounded-xl flex items-center justify-center">
<h3 class="text-lg font-semibold text-gray-900 mb-2">
逐个解析:
bg-white
→ 白色背景rounded-2xl
→ 大圆角(16px)p-6
→ 全方向24px内边距hover:shadow-lg
→ 悬停时显示大阴影transition-all
→ 所有属性平滑过渡w-12 h-12
→ 48px × 48px 正方形bg-blue-600
→ 蓝色背景(标准蓝色偏深)rounded-xl
→ 较大圆角(12px)flex items-center justify-center
→ flex居中text-lg
→ 18px文字font-semibold
→ 字重600text-gray-900
→ 深灰色文字mb-2
→ 底部8px外边距
🎯 学习建议
1. 记忆技巧
- 数字系统:数字 × 4 = 像素值
- 颜色系统:500是标准色,数字越大越深
- 响应式:移动优先,逐步增强
2. 常用工具
- Tailwind CSS 官方文档
- Tailwind CSS 速查表
- VS Code 插件:Tailwind CSS IntelliSense
总结
Tailwind CSS 的核心是规律性和一致性:
- 数字系统基于 0.25rem 的倍数关系
- 颜色系统从50(最浅)到950(最深)
- 命名规则简洁明了:
属性-值
掌握了这些规律,你就能快速理解和使用任何 Tailwind 类名。记住,Tailwind 不是要你记住所有类名,而是要你理解它的设计思路,这样即使遇到没见过的类名,你也能推断出它的作用。