Tailwind in React Tailwind 样式
最后更新:2026-10-28
Tailwind in React Tailwind 样式
Tailwind CSS 是原子化 CSS 框架:把样式拆成单一用途的类名直接写进 className。React 中配合条件拼接可在 JSX 内完成全部样式表达,无需切换文件;JIT 只为用到的类生成 CSS,产物极小。
| 分组 | 生态与进阶 |
|---|---|
| 类型 | 第三方库 |
| 引入版本 | v4(2025 年起主流,Vite 插件接入) |
ℹ️ 说明 编辑器将 JSX 转译为 JavaScript 后在沙箱中渲染真实界面;组件自动挂载,无需手写 render 调用。
📝 语法
npm install tailwindcss @tailwindcss/vite
/* index.css —— Tailwind v4 一行引入 */
@import "tailwindcss";
// 类名直接写在 className,条件拼接是核心技巧
<div className={`px-4 py-2 rounded ${active ? 'bg-blue-600 text-white' : 'bg-gray-100'}`}>
按钮
</div>
// px-4 内边距 py-2 垂直内边距 rounded 圆角 bg-blue-600 蓝底
⚙️ 参数
| tailwind.config.js | v3 的主题配置文件,可扩展颜色、间距与自定义变体;v4 改为在 CSS 内用 @theme 配置。 |
|---|---|
| @tailwindcss/vite 插件 | Vite 项目的推荐接入方式,编译时扫描 JSX 提取用到的类名并生成样式表。 |
返回值:无返回值,第三方库用法说明见示例。
▶ 示例
示例可直接运行:展开后自动渲染,编辑代码即时生效。
输出结果:
模拟演示:顶部以等宽字体显示当前拼接出的完整 class 字符串(含基础类、变体类与禁用时的 opacity-50 条件类),下方是一个 Tailwind 风格按钮,点击「切换 primary / danger / ghost」改变配色,「禁用 / 启用」演示条件类追加与半透明效果。真实 Tailwind 类名需样式表才生效,此处用内联样式模拟。
💡 要点
💡 提示 类名保持「布局 → 间距 → 颜色」的一致书写顺序,团队代码更易读;顺序本身不影响优先级。
⚠️ 注意 动态拼接完整类名(如 `bg-${color}-600`)不会生效——JIT 扫描不到完整类名,应写成映射对象按 key 选取完整字符串。
ℹ️ 说明 重复出现的长类名串可抽成常量对象或 cn()/clsx 辅助函数,避免到处复制粘贴。
🏷️ 生态与进阶相关
💡 相关案例
更多案例整理中,敬请期待。
📚 相关教程
❓ 常见问题
Q className 太长怎么管理?
A 把常用组合抽成常量对象,用 cn()/clsx 辅助函数拼接,或直接封装成小组件。长类名是把 CSS 写进 JSX 的固有代价,靠组织而非语法解决。
Q 为什么动态拼接的类名不生效?
A Tailwind JIT 只为源码中完整出现的类名生成 CSS,`bg-${color}-600` 在扫描时不可见。应写一个 { red: 'bg-red-600', blue: 'bg-blue-600' } 映射,按 key 选取完整类名。
Q Tailwind 和 CSS Modules 怎么选?
A 追求开发速度与设计系统统一选 Tailwind;需要传统 CSS 能力(复杂动画、伪元素)且要强隔离选 CSS Modules。二者可以在同一项目混用。