提问:你在项目中使用过 Tailwind CSS 吗?

Tailwind 为什么有人爱,有人恨。你是爱,还是恨?

🧨 一、争议之源

Tailwind CSS 是这几年前端圈最具争议的工具之一。

- ❤️ 喜欢的人说:

"用过就回不去了!写样式像拼乐高一样爽!"

- 💢 讨厌的人怒吼:

  • 行内样式一坨代码,看得脑壳痛
  • class 命名堆成墙,调试像在粪坑里捞钥匙🔑
  • 记那么多奇奇怪怪的缩写?搞笑吧!

这不是"风格不合"这么简单,而是一场前端哲学之争:结构和样式,是不是应该彻底分离?


🚀 二、核心优势

✅ 命名地狱终结者

传统 CSS:

html 复制代码
<!-- 命名越来越魔幻 -->
<div class="container-wrapper-item-title-btn"></div>

Tailwind:

html 复制代码
<!-- 所见即所得 -->
<button class="px-4 py-2 bg-blue-500 rounded-lg text-white">按钮</button>

"不再因为命名卡壳,也不怕团队命名风格五花八门。"


✅ 屎山清洁机

CSS 代码常见问题:

  • 改旧代码像拆炸弹,动一行炸一片
  • 不敢删样式,只能往上覆盖,最终堆成屎山🗻

Tailwind 的原子类机制:

  • 每个 class 职责单一,复用自动合并 (写 1 万次 flex 也只打包一次)
  • 没有"全局污染",删除 HTML 时样式也一并清除

✅ 开发效率飞升

🧠 上下文共生

  • HTML + 样式合一,无需在 .html 和 .css 文件间来回切换
  • AI 辅助写代码时更精准理解上下文(如 Copilot、ChatGPT)

🖱️ 一键扒皮

  • 浏览器 F12,直接复制别人的 class 结构,即可还原样式
  • 模仿优秀网站从未如此简单,像素级还原无需设计稿

📏 设计风格约束

  • 配合设计系统提前约定色号、间距、字体大小
  • 防止"一个按钮20种写法"的混乱局面

🌑 三、应用场景

💼 强大的 UI 组件库支持:如 Shadcn UI

  • 源码完全暴露,可直接在 Tailwind 基础上二次开发

  • 对比传统组件库(Element UI、Ant Design):

    • 不再受 props 限制
    • 样式修改不用加 !important、不用 hack CSS 变量

🤝 团队协作更丝滑

  • 没有"祖传 reset.css"冲突
  • 原子类写法不会互相干扰,后来的开发者也能放心接手

📘 四、教程

bootstrap和tailwind 区别:

html 复制代码
<!-- bootstrap 按钮 -->
<button class="btn btn-primary">按钮</button>
html 复制代码
<!-- tailwind css 按钮 -->
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">按钮</button>

- 📦 安装和配置

接下来配置的是tailwindcss 4版本。跟3相比较,4自动检测htmljs组件和其他模版去获取类名,生成相应的样式,然后写进css文件中。之前3是要配置一下扫描的文件后缀的。

像3的话要配一下tailwind.config.js:

js 复制代码
module.exports = {
  content: ['./index.html', './src/**/*.{js,vue,ts,jsx,tsx}'], // 扫描文件
  theme: {
    extend: {}, // 扩展主题
  },
  plugins: [],
}

以下是4结合vite的安装和配置:

通过npm安装tailwindcss@tailwindcss/vite:

js 复制代码
npm install tailwindcss @tailwindcss/vite

vite配置中加入@tailwindcss/vite:

js 复制代码
import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'

export default defineConfig({
  plugins: [
    tailwindcss(),
  ],
})

css文件中加入:

js 复制代码
@import "tailwindcss";

就可以用了。

这里官方推荐使用两个插件:

  • Tailwind CSS IntelliSense:用来自动补全、语法检查、查看某个语法、以及语法写法高亮。

  • Prettier:class排序。 比如说:

html 复制代码
<!-- 没排序之前 -->
<button class="text-white px-4 sm:px-8 py-2 sm:py-3 bg-sky-700 hover:bg-sky-800"></button>

<!-- prettier 排序之后 -->
<button class="bg-sky-700 px-4 py-2 text-white hover:bg-sky-800 sm:px-8 sm:py-3"></button>

Tailwind 的类名通常按 功能类别 排序,顺序大致如下(类似官方文档的结构):

  1. 布局相关 (如 container, block, flex
  2. 盒模型 (如 width, padding, margin
  3. 视觉效果 (如 background, border, text
  4. 状态和交互 (如 hover:, focus:, active:
  5. 响应式断点 (如 sm:, md:, lg:

- 📦 使用

示例

html 复制代码
cdn原生引入js的方式

<script src="https://cdn.tailwindcss.com"></script>

// 💡 编写示例:按钮
<button class="bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded-lg shadow-lg">
  登录
</button>
html 复制代码
// 🌗 深色模式示例
<div class="bg-white dark:bg-gray-800 text-gray-900 dark:text-white">
  深色模式自动适配!
</div>
html 复制代码
// 📱 响应式布局
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
  <div class="p-4 bg-red-100">1</div>
  <div class="p-4 bg-blue-100">2</div>
  <div class="p-4 bg-green-100">3</div>
  <div class="p-4 bg-yellow-100">4</div>
</div>

🎉 结语

结语:三段式心路历程

  1. 卧槽,这什么鬼?
  2. 好像真香?
  3. 真特么回不去了!

Tailwind CSS,不是"革命",但确实是"解脱":

"让样式维护变简单,是写好前端的第一步。"

"哪怕是屎,至少是结构清晰、不会炸锅的屎。"

相关推荐
IT_陈寒5 分钟前
Redis缓存击穿把我整不会了,原来还有这手操作
前端·人工智能·后端
idcu27 分钟前
深入 Lyt.js 组件系统:L2 渲染引擎层的核心
前端·typescript
这是程序猿1 小时前
Spring Boot自动配置详解
java·大数据·前端
文心快码BaiduComate1 小时前
干货|Comate Harness Engineering工程实践指南
前端·后端·程序员
还有多久拿退休金1 小时前
一张栈的图,治好你面试答不出 script 阻塞的病
前端·javascript
光辉GuangHui1 小时前
Agent Skill 也需要测试:如何搭建 Skill 评估框架
前端·后端·llm
To_OC1 小时前
我终于搞懂 Claude Code 核心逻辑!90%的人都用错了模式
前端·ai编程
蓝宝石的傻话1 小时前
Headless浏览器的隐形陷阱:为什么你的AI自动化工具抓不到页面早期错误?
前端
irving同学462381 小时前
Node 后端实战:JWT 认证与生产级错误处理
前端·后端
莽夫搞战术1 小时前
【Google Stitch】AI原生画布重新定义设计,让想法变成可交互界面
前端·人工智能·ui