Contents
  1. 1. 什么是TailwindCSS?
  2. 2. 为什么选择TailwindCSS?
  3. 3. 快速开始:安装与配置
    1. 3.1. 前提条件
    2. 3.2. 安装步骤
  4. 4. 核心概念与基础用法
    1. 4.1. 工具类语法规则
    2. 4.2. 常用工具类分类
    3. 4.3. 响应式设计
    4. 4.4. 自定义更小的断点
    5. 4.5. 自定义样式与组件
    6. 4.6. 主题定制
  5. 5. 实战示例:构建响应式导航栏
  6. 6. 生产环境优化
  7. 7. 常见问题与解决方案
    1. 7.1. 1. 样式不生效?
    2. 7.2. 2. 自定义主题不生效?
    3. 7.3. 3. 生产环境丢失样式?
  8. 8. 学习资源
  9. 9. 总结

什么是TailwindCSS?

TailwindCSS 是一个基于”实用优先”理念的CSS框架,与Bootstrap、Bulma等传统框架不同,它不提供现成的UI组件(如按钮、卡片),而是提供了一套完整的原子化工具类(如flextext-centerbg-blue-500),让你可以直接在HTML中组合这些类来构建界面。

这种方式的核心优势在于:无需离开HTML文件编写CSS,极大减少上下文切换;通过约束性的设计系统保证视觉一致性;最终打包时自动移除未使用的样式,保持CSS体积最小化。

为什么选择TailwindCSS?

  • 开发效率极高:工具类覆盖绝大多数CSS属性,组合使用即可完成样式设计,无需命名CSS类
  • 响应式设计简单:内置sm:md:lg:等前缀,轻松实现多设备适配
  • 高度可定制:通过配置文件自定义颜色、字体、间距等,打造专属设计系统
  • 无冗余代码:生产环境自动剔除未使用的样式,通常比手写CSS更轻量
  • 学习成本低:记住常用工具类即可上手,无需学习框架特定语法

快速开始:安装与配置

可以参考项目:
tailwindcss4-demo

前提条件

需要Node.js环境(v14.0.0+),推荐使用npm或yarn作为包管理工具。

安装步骤

  1. 初始化项目并安装依赖
1
2
3
4
# pnpm安装TailwindCSS及相关工具
pnpm i -D tailwindcss @tailwindcss/cli
# 或者使用npm
npm i -D tailwindcss @tailwindcss/cli
  1. 创建CSS文件
    示例的目录结构
    1
    2
    3
    4
    5
    6
    src/
    └── common.css
    public/
    ├── index.html
    └── css/
    └── common.css

src目录下创建common.css(名称可自定义):

1
@import "tailwindcss";
  1. 配置编译命令

package.json中添加脚本:

1
2
3
4
"scripts": {
"watch": "tailwindcss -i ./src/*.css -o ./public/css/* --watch",
"build": "tailwindcss -m -i ./src/*.css -o ./public/css/*"
}
  • watch:开发模式,实时监听文件变化并编译
  • build:生产模式,生成压缩后的CSS文件
  1. 增加一个轻量http服务方便测试(可选)
1
pnpm i -D http-server npm-run-all

修改package.json添加start脚本:

1
2
3
4
5
6
"scripts": {
"watch": "tailwindcss -i ./src/*.css -o ./public/css/* --watch",
"build": "tailwindcss -m -i ./src/*.css -o ./public/css/*",
"start": "run-p watch server",
"server": "http-server ./public -p 8080 -c-1"
}

然后运行pnpm start即可启动服务。访问本地测试地址http://localhost:8080即可。

核心概念与基础用法

工具类语法规则

Tailwind的工具类遵循直观的命名规则:

1
2
3
4
5
6
7
8
9
10
11
<!-- 文本颜色为蓝色500 -->
<p class="text-blue-500">这是蓝色文本</p>

<!-- 背景色为灰色100,内边距为4(1rem),圆角为-lg -->
<div class="bg-gray-100 p-4 rounded-lg">带背景的容器</div>

<!-- 响应式设计:小屏幕以上显示flex布局 -->
<div class="md:flex justify-center">响应式布局</div>

<!-- 状态变体: hover时背景色变化 -->
<button class="bg-blue-500 hover:bg-blue-600">悬停效果</button>

常用工具类分类

类别 示例 说明
布局 flexgridblockhidden 控制元素显示方式
间距 m-4(margin)、p-2(padding)、mt-1(margin-top) 控制内外边距
尺寸 w-1/2(宽度50%)、h-64(高度16rem)、max-w-lg 控制元素尺寸
颜色 text-red-500bg-green-100border-blue-300 文本、背景、边框颜色
文本 text-xlfont-boldtext-centeritalic 文本样式
边框 borderrounded-fullborder-t-2 边框与圆角
响应式 sm:px-4lg:flex 不同屏幕尺寸的样式
状态 hover:bg-gray-200focus:outline-none 交互状态样式

响应式设计

Tailwind内置5个响应式断点前缀,对应不同屏幕尺寸:

  • sm::640px以上
  • md::768px以上
  • lg::1024px以上
  • xl::1280px以上
  • 2xl::1536px以上

使用示例:

1
2
3
4
5
6
<div class="bg-white 
sm:bg-gray-100 <!-- 640px以上背景变灰 -->
md:bg-blue-50 <!-- 768px以上背景变浅蓝 -->
p-2 md:p-4 lg:p-6 <!-- 不同尺寸下内边距变化 -->">
响应式背景
</div>

自定义更小的断点

默认断点中最小的是sm:640px,但在开发移动端网站时,有时需要适配更小的屏幕(如320px-360px的设备)。在Tailwind CSS v4中,可以通过@theme指令添加更小的断点:

1
2
3
4
5
@import "tailwindcss";

@theme {
--breakpoint-xs: 360px; /* 新增超小屏断点 */
}

配置后就可以使用xs:前缀来定义超小屏幕的样式:

1
2
3
4
5
6
7
8
9
10
11
12
<!-- 在360px以下显示1列,360px-640px显示2列,640px以上显示4列 -->
<div class="grid grid-cols-1 xs:grid-cols-2 sm:grid-cols-4 gap-4">
<div class="bg-gray-100 p-4">项目1</div>
<div class="bg-gray-100 p-4">项目2</div>
<div class="bg-gray-100 p-4">项目3</div>
<div class="bg-gray-100 p-4">项目4</div>
</div>

<!-- 文本大小随屏幕变化 -->
<p class="text-[12px] xs:text-sm sm:text-base md:text-lg">
适配超小屏幕的文本
</p>

自定义样式与组件

当需要复用一组样式时,可以通过@layer@apply创建自定义组件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* 在input.css中添加 */
@layer components {
/* 自定义按钮组件 */
.btn-primary {
@apply bg-blue-600 text-white px-4 py-2 rounded-lg
hover:bg-blue-700 transition-colors;
}

/* 导航项组件 */
.nav-item {
@apply px-3 py-2 text-gray-700 hover:text-blue-600
hover:bg-gray-100 rounded-md transition-colors;
}

/* 当前激活项样式 */
.nav-item-active {
@apply text-blue-600 font-medium bg-blue-50;
}
}

使用自定义组件:

1
2
3
4
5
6
7
<button class="btn-primary">主要按钮</button>

<ul>
<li class="nav-item nav-item-active">首页</li>
<li class="nav-item">产品</li>
<li class="nav-item">关于我们</li>
</ul>

主题定制

在Tailwind CSS v4中,主题配置方式发生了重大变化。不再需要tailwind.config.js文件,而是直接在CSS中使用@theme指令来扩展默认主题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 示例文件结构中的src/common.css
@import "tailwindcss";

@theme {
/* 自定义颜色 */
--color-primary: #1E40AF; /* 深蓝色作为主色调 */
--color-secondary: #F59E0B; /* 橙色作为辅助色 */

/* 自定义字体 */
--font-sans: Inter, system-ui, sans-serif;
--font-serif: Georgia, Cambria, serif;

/* 自定义间距 */
--spacing-128: 32rem; /* 增加一个更大的间距值 */
}

使用自定义主题:

1
2
<h1 class="font-serif text-primary text-3xl">自定义字体和颜色</h1>
<div class="h-128 bg-secondary/20">使用自定义高度</div>

实战示例:构建响应式导航栏

下面通过一个完整示例展示如何使用Tailwind构建响应式导航栏:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<nav class="bg-white shadow-md">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-16">
<!-- 品牌标识 -->
<div class="flex items-center">
<a href="#" class="flex-shrink-0 flex items-center">
<span class="text-primary font-bold text-xl">MyApp</span>
</a>
</div>

<!-- 桌面端导航 -->
<div class="hidden md:flex items-center space-x-4">
<a href="#" class="nav-item nav-item-active">首页</a>
<a href="#" class="nav-item">产品</a>
<a href="#" class="nav-item">文档</a>
<a href="#" class="nav-item">关于</a>
<button class="btn-primary ml-4">登录</button>
</div>

<!-- 移动端菜单按钮 -->
<div class="md:hidden flex items-center">
<button type="button" class="text-gray-500 hover:text-gray-700">
<svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
</svg>
</button>
</div>
</div>
</div>
</nav>

这个导航栏实现了:

  • 桌面端显示水平导航菜单
  • 移动端隐藏菜单,显示汉堡按钮
  • 使用之前定义的nav-item组件保持样式一致性
  • 响应式适配不同屏幕尺寸

这里的移动端下拉不能使用 因为没有js来控制

生产环境优化

  1. 使用-m(--minify)参数:生产构建时压缩CSS
  2. 自动移除未使用样式:Tailwind v4内置优化,自动移除未使用的样式
  3. 零配置启动:Tailwind v4无需手动配置content路径,自动扫描相关文件

常见问题与解决方案

1. 样式不生效?

  • Tailwind CSS v4已移除content配置:v4版本实现了零配置启动,自动扫描项目中的HTML/CSS/JS文件
  • 确认编译命令是否正确执行,CSS文件是否生成
  • 检查HTML中是否正确引用了编译后的CSS文件
  • 支持自定义路径配置

如需配置特定路径,在CSS文件中使用@source指令:

1
2
3
4
@import "tailwindcss";
@source "./src/**/*.html";
@source "./src/**/*.js";
@source "./components/**/*.{html,js}";

2. 自定义主题不生效?

  • 修改配置后需要重启开发服务器
  • 检查@theme指令中的CSS变量定义是否正确
  • 检查类名是否正确(如自定义颜色是否使用了正确的命名)

3. 生产环境丢失样式?

  • Tailwind v4会自动扫描相关文件,通常不会出现样式丢失问题
  • 对于动态生成的类名,确保它们在构建时是可见的
  • 避免完全动态生成的类名(如text-<?= $color ?>

学习资源

总结

TailwindCSS通过原子化工具类的方式,重新定义了CSS开发流程。它的学习曲线平缓,一旦掌握常用工具类,开发效率会显著提升。对于中小型项目和需要快速迭代的产品,TailwindCSS是一个理想选择。

与传统CSS相比,它可能需要适应”在HTML中写样式”的方式,但带来的收益远超这点适应成本。配合Alpine.js等轻量级框架,能构建出既美观又高效的现代Web应用。

开始你的Tailwind之旅吧,它可能会彻底改变你编写CSS的方式!

Contents
  1. 1. 什么是TailwindCSS?
  2. 2. 为什么选择TailwindCSS?
  3. 3. 快速开始:安装与配置
    1. 3.1. 前提条件
    2. 3.2. 安装步骤
  4. 4. 核心概念与基础用法
    1. 4.1. 工具类语法规则
    2. 4.2. 常用工具类分类
    3. 4.3. 响应式设计
    4. 4.4. 自定义更小的断点
    5. 4.5. 自定义样式与组件
    6. 4.6. 主题定制
  5. 5. 实战示例:构建响应式导航栏
  6. 6. 生产环境优化
  7. 7. 常见问题与解决方案
    1. 7.1. 1. 样式不生效?
    2. 7.2. 2. 自定义主题不生效?
    3. 7.3. 3. 生产环境丢失样式?
  8. 8. 学习资源
  9. 9. 总结