Tailwind CSS: Tailwind CSS 是什么

如果你写过 CSS,你一定经历过这样的场景:为了一像素的间距问题折腾半小时,为了取一个类名卡住五分钟,为了覆盖某个框架的默认样式翻遍整个样式表……Tailwind CSS 就是来解决这些问题的。它不是又一个 Bootstrap,而是一种全新的写 CSS 的方式


1. 什么是 Tailwind CSS

Tailwind CSS 是一个实用性优先(Utility-First)的 CSS 框架。它的核心理念是:直接在 HTML 里用预定义的 class 来控制样式,而不是写自定义 CSS

看个最直观的对比——在页面上放一个蓝色按钮:

▶ 示例:传统CSS vs Tailwind(难度⭐)

传统 CSS 写法:

HTML
<style>
.btn-primary {
  background-color: #2563eb;
  color: white;
  padding: 12px 24px;
  border: none;
  border-radius: 8px;
  font-size: 16px;
  cursor: pointer;
}
.btn-primary:hover {
  background-color: #1d4ed8;
}
</style>
<button class="btn-primary">点击我</button>
▶ 试一试

Tailwind 写法:

▶ 示例:Tailwind 写法(难度⭐)

HTML
<button class="bg-blue-600 text-white px-6 py-3 rounded-lg text-base cursor-pointer hover:bg-blue-700">
  点击我
</button>
▶ 试一试

把上面的 Tailwind 代码放入下面的编辑器中,看看效果。

看到区别了吗?在 Tailwind 里,你不需要离开 HTML。所有样式直接通过 class 组合出来——bg-blue-600 是蓝色背景,px-6 是左右内边距,rounded-lg 是大圆角,hover:bg-blue-700 是悬停时变深。

💡 Utility-First 是什么? 简单说就是把 CSS 属性拆成最小的原子类。bg-blue-600 只做一件事——设置背景色为蓝色。text-white 只做一件事——设置文字为白色。你需要什么样式,就组合什么 class,像搭积木一样。



2. Tailwind vs 传统框架

(1) vs Bootstrap

Bootstrap 是组件式框架——它提供预先设计好的组件(按钮、导航、卡片、表单),你用一套固定的 HTML 结构来调用它们。问题是:如果你想改样式,就得覆盖 Bootstrap 的 CSS,或者去改 Sass 变量。

对比维度 Bootstrap Tailwind CSS
核心理念 提供现成组件 提供原子类让你自己搭
定制难度 覆盖默认样式很痛苦 随意组合,无需覆盖
学习曲线 学组件名 学 CSS 属性对应的 class
最终体积 含大量你用不到的样式 构建时只保留用到的
设计自由度 所有 Bootstrap 网站看着像 每个网站都不一样

(2) vs 手写 CSS

对比维度 手写 CSS Tailwind CSS
命名 每写一个样式就要想一个类名 不用命名,直接用 class 组合
文件切换 HTML 和 CSS 文件之间来回切 全在 HTML 里完成
代码量 两套文件,量不小 一行 class 搞定
维护性 改样式要去 CSS 里找 改样式直接改 HTML 的 class
一致性 靠规范约束 内置设计系统,自动一致

▶ 示例:一个简单的名片卡片(难度⭐)

HTML
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Tailwind 名片示例</title>
  <script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-100 flex items-center justify-center min-h-screen">
  <div class="max-w-xs mx-auto p-6 bg-white rounded-2xl shadow-lg text-center">
    <img src="https://i.pravatar.cc/80" alt="头像"
         class="w-20 h-20 rounded-full mx-auto mb-3">
    <h2 class="text-xl font-bold text-gray-900 mb-1">张三</h2>
    <p class="text-sm text-blue-600 mb-2">前端工程师</p>
    <p class="text-sm text-gray-500 mb-4">热爱编程,专注于 Web 开发</p>
    <button class="bg-blue-600 text-white px-6 py-2 rounded-lg cursor-pointer
                   hover:bg-blue-700 transition-colors">
      联系我
    </button>
  </div>
</body>
</html>
▶ 试一试

把这段代码保存为 .html 文件,在浏览器里打开——不用装任何东西,直接就能看效果

💡 有没有觉得 Tailwind 的 class 很长很丑? 几乎所有第一次接触 Tailwind 的人都会这么想。但用过一周后,大多数人会改变看法——"丑但高效"胜过"漂亮但麻烦"。class 名本质上是 CSS 属性的缩写,熟悉了就不觉得长了。



3. Tailwind CSS v4 的重要变化

Tailwind CSS v4 于 2025 年 3 月发布,相比 v3 有重大架构升级:

变化 v3 方式 v4 方式
构建引擎 JavaScript Rust(Oxide 引擎),构建快 3.5 倍
CSS 入口 @tailwind base/components/utilities @import "tailwindcss"
配置方式 tailwind.config.js CSS 中的 @theme 指令
自定义主题 JS 配置文件 CSS 原生变量 + @theme
新特性 容器查询、@starting-style、CSS 嵌套

对于初学者来说,v4 最大的感受是配置更简单了——以前需要装一堆 npm 包、写配置文件的场景,现在一行 @import "tailwindcss" 就能搞定。

⚠️ 注意: 网上很多教程还是基于 v3 的。如果你看到 tailwind.config.js 或者 @tailwind base 之类的写法,那是旧版。我们的教程基于 v4,所有示例都使用最新的写法。



4. 学 Tailwind 前需要什么基础

学习本教程前,你应该已经掌握:

如果你想不起来这些了,可以先看我们站上的 HTML 教程CSS 教程。有这两个基础,学 Tailwind 基本就是一马平川。

💡 Tailwind 不是用来"学 CSS"的,而是用来"更高效地写 CSS"的。 如果你还不太清楚 display: flex 是干什么的,建议先去补一下 CSS 基础再回来。



5. 常见应用场景


❓ 常见问题

Q Tailwind 和 Bootstrap 哪个更值得学?
A 都值得学,但定位不同。Bootstrap 适合"快速搭一个还过得去的界面",Tailwind 适合"我要精确控制每一个像素"。如果你追求设计自由度和长期项目维护,Tailwind 更好。如果你只是需要一个内部管理系统快速上线,Bootstrap 更省事。行业趋势上,Tailwind 增速已经超过 Bootstrap。
Q class 名那么长,HTML 文件会不会很臃肿?
A 会。这是 Tailwind 最被诟病的地方。一个简单的按钮可能就有六七个 class。但有几个缓解办法:生产环境会用构建工具压缩,class 名会变成短编码;重复出现的 class 组合可以用 @apply 提取(后面会讲);和 React/Vue 组件配合时,class 写在组件文件里,不显得乱。
Q Tailwind 会影响页面性能吗?
A 不会。相反,Tailwind 的生产构建会移除所有没用到的 class(tree-shaking),最终生成的 CSS 文件通常只有 10KB 左右。CDN 版本(开发时用)确实比较大,但上线时用构建工具跑一遍就小了。
Q 我应该从哪里开始学 Tailwind?
A 先搞懂 Utility-First 的理念(就是这课的内容),然后安装并跑起来一个最小示例(下一课),再从最常用的 class 开始(间距、颜色、排版),最后攻克布局(Flex、Grid)和响应式。我们的教程就是按这个路线设计的,跟着走就行。

📖 小节


📝 作业

  1. 基础题(难度⭐):找一个你已经写过的 HTML 页面(哪怕是几行文字),在它的 <head> 里加上 Tailwind CDN 链接,然后用 Tailwind class 给文字改个颜色和字号。看看效果。

  2. 进阶题(难度⭐⭐):用手写 CSS 实现一个简单的卡片组件(至少包含标题、文字、按钮),然后用 Tailwind 重写一遍。比较两种方式的代码量和开发体验。提示:不用追求美观,重点是感受两种写法的差异。

  3. 挑战题(难度⭐⭐⭐):打开 https://play.tailwindcss.com/(Tailwind 官方在线 Playground),在左侧编辑器里尝试搭建一个个人简介页面,包含:头像(圆形)、姓名(大号加粗)、简介文字(灰色)、三个技能标签(圆角浅色背景)、一个按钮。全部用 Tailwind class 完成,不用写一行自定义 CSS。

Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏