tailwindcss:www.tailwindcss.cn/docs/utilit...
帮你画一个 Tailwind CSS + PostCSS + Autoprefixer 构建流程图,让你一眼看懂三者的关系。
css
cpp
复制编辑
┌──────────────────────────┐
│ 你的 HTML / Vue / React │
│ <div class="flex ..."> │
└───────────┬──────────────┘
│
▼
┌──────────────────────────┐
│ Tailwind CSS 插件 │
│ (PostCSS 插件之一) │
│ - 解析类名 │
│ - 生成对应的 CSS 样式 │
└───────────┬──────────────┘
│
▼
┌──────────────────────────┐
│ Autoprefixer 插件 │
│ (PostCSS 插件之一) │
│ - 根据 browserslist 配置 │
│ 自动加厂商前缀 │
└───────────┬──────────────┘
│
▼
┌──────────────────────────┐
│ PostCSS 核心引擎 │
│ - 作为平台依次调用插件 │
│ - 输出最终 CSS 文件 │
└───────────┬──────────────┘
│
▼
┌──────────────────────────┐
│ 浏览器加载渲染 │
└──────────────────────────┘
💡 记忆口诀:
- Tailwind CSS:造"布料"(提供样式类 → CSS)。
- Autoprefixer:给布料加"配件"(厂商前缀)。
- PostCSS:加工厂(调用插件完成整个流水线)。
详细解释
1. Tailwind CSS ------ 造"布料"的工厂
-
定位:原子化 CSS 框架。
-
作用 :
给你一大堆预定义好的 CSS 工具类,比如:
csscss 复制编辑 .flex { display: flex } .items-center { align-items: center } .text-red-500 { color: #ef4444 }
然后你直接在 HTML / Vue / React 里写:
csshtml 复制编辑 <div class="flex items-center text-red-500">Hello</div>
就能立刻生效,不用自己写
.class {}
。 -
核心思想 : "类即样式" ,减少手写 CSS 文件的需求。
-
和 config 的关系 :通过
tailwind.config.js
可以自定义颜色、字体、断点、动画等。
2. PostCSS ------ 缝纫机 + 车间
-
定位:CSS 处理平台(类似 Webpack 但专门处理 CSS)。
-
作用 :
本身啥也不做,它的核心就是插件机制,比如:
- 用
tailwindcss
插件:把你写的类解析成完整 CSS。 - 用
autoprefixer
插件:自动加浏览器厂商前缀。 - 用其他插件:压缩 CSS、变量替换、未来 CSS 语法转成兼容写法等。
- 用
-
特点 :
它是个"中转站",所有 CSS 在最终输出到浏览器前都会经过它的加工流水线。
3. Autoprefixer ------ 自动加"配件"的工人
-
定位:PostCSS 的一个插件。
-
作用 :
根据你的浏览器兼容目标(来自
browserslist
配置),自动给 CSS 属性加厂商前缀,比如:csscss 复制编辑 display: flex;
会变成:
csscss 复制编辑 display: -webkit-box; display: -ms-flexbox; display: flex;
-
好处:
- 你不用手动写
-webkit-
、-moz-
等。 - 根据最新浏览器数据(Can I Use)动态更新要加哪些前缀。
- 你不用手动写
三者关系
你可以理解成这样一个生产线:
scss
css
复制编辑
你写的 HTML/Vue/React + Tailwind 工具类
↓ (Tailwind 插件)
生成真实 CSS 样式
↓ (Autoprefixer 插件)
自动加浏览器厂商前缀
↓ (PostCSS 主流程)
统一输出成最终 CSS 文件
所以:
- Tailwind CSS:提供现成的样式工具类。
- PostCSS:负责把 CSS 从各种来源加工成浏览器能用的形式(是个容器/平台)。
- Autoprefixer:PostCSS 里的一个插件,专门给 CSS 加浏览器兼容前缀。