什么是 Tailwind CSS

01. 什么是 Tailwind CSS

1. 定义

Tailwind CSS 是一个原子化 CSS 框架(Utility-First CSS Framework)。

简单说:它提供了一堆可以直接写在 HTML 类名里的小工具类,让你不用写 CSS 代码,就能快速搭建界面。

html 复制代码
<!-- 传统 CSS 写法:需要写 CSS 文件 -->
<div class="card">...</div>

<style>
  .card {
    background-color: white;
    border-radius: 8px;
    padding: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  }
</style>

<!-- Tailwind 写法:直接在 HTML 里写工具类 -->
<div class="bg-white rounded-lg p-4 shadow-sm">...</div>

2. 核心理念

传统 CSS 方式

css 复制代码
/* 定义语义化类名,然后写样式 */
.button-primary {
  background-color: blue;
  color: white;
  padding: 8px 16px;
  border-radius: 4px;
}

问题:

  • 需要起名字(命名困难)
  • 样式和 HTML 分离(来回跳转)
  • 文件越来越大(难以维护)
  • 修改样式影响未知(全局污染)

Tailwind 方式

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

优势:

  • 不用起名字
  • 样式就在 HTML 里
  • 只改一个类名,不影响其他地方
  • 代码量更小

3. 工具类示例

分类 传统 CSS Tailwind
背景色 background-color: blue; bg-blue-500
文字颜色 color: white; text-white
内边距 padding: 16px; p-4
左右内边距 padding-left: 16px; padding-right: 16px; px-4
圆角 border-radius: 8px; rounded-lg
阴影 box-shadow: ... shadow-md
弹性布局 display: flex; flex
居中 justify-content: center; align-items: center; justify-center items-center

4. 与传统 CSS 对比

对比项 传统 CSS Tailwind CSS
学习曲线 低,但精通难 中等,需要记忆类名
开发速度 慢(要写 CSS) 快(直接写类名)
文件大小 随项目增长 固定(只生成用到的)
维护性 差(全局污染) 好(局部影响)
团队协作 类名冲突 无冲突
响应式 需要写媒体查询 内置断点前缀

5. 优点

1. 开发效率高

html 复制代码
<!-- 一行搞定一个卡片 -->
<div class="bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow">
  <h2 class="text-xl font-bold mb-2">标题</h2>
  <p class="text-gray-600">描述文字</p>
</div>

2. 不用担心类名冲突

  • 没有 .card、.container 这种通用类名
  • 每个类都是唯一的工具类

3. 无需切换文件

  • HTML 和样式在一起
  • 不用在 .html 和 .css 之间来回跳

4. 只生成用到的样式

  • 生产环境会自动删除没用到的类
  • 最终 CSS 文件很小

5. 响应式设计简单

html 复制代码
<!-- 手机:1列,平板:2列,电脑:4列 -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4">
  ...
</div>

6. 暗色模式

html 复制代码
<!-- 暗色模式下背景变黑 -->
<div class="bg-white dark:bg-gray-900">
  ...
</div>

6. 缺点

1. HTML 看起来"臃肿"

html 复制代码
<!-- 类名确实比较多 -->
<div class="flex items-center justify-between p-4 bg-white rounded-lg shadow-md border border-gray-200 hover:shadow-lg transition-shadow">

解决方案 :可以使用 @apply 指令提取为组件类

2. 需要记忆类名

  • 初学者需要查文档
  • IDE 插件可以自动补全(推荐安装)

3. 团队学习成本

  • 团队所有人都要熟悉 Tailwind

7. 适用场景

✅ 适合使用

  • 新项目(从零开始)
  • 原型开发
  • 个人项目
  • 组件化框架项目(React、Vue、Svelte)
  • 需要快速迭代的项目

❌ 不太适合

  • 已有大量 CSS 的老项目(迁移成本高)
  • 复杂的动画效果(需要写自定义 CSS)
  • 团队不愿改变开发习惯

8. 谁在使用 Tailwind

  • GitHub(新版首页)
  • Vercel(官网)
  • Netlify(官网)
  • Laravel(框架)
  • Vue.js(新版文档)
  • Next.js(官方示例)

9. 总结

一句话总结
Tailwind 是在 HTML 里写 CSS,把样式拆成一个个小工具类,组合使用来构建界面

核心理念:原子化(Utility-First)

核心优势:不用命名、不用切文件、响应式简单、暗色模式简单、生产包小

核心劣势:HTML 看起来臃肿、需要记忆类名


10. 下一步

理解了 Tailwind 是什么之后,接下来学习如何安装和使用:

👉 下一节 :02. 快速开始


练习

尝试理解下面这段代码的效果:

html 复制代码
<div class="max-w-sm mx-auto bg-white rounded-xl shadow-md overflow-hidden md:max-w-2xl">
  <div class="md:flex">
    <div class="md:shrink-0">
      <img class="h-48 w-full object-cover md:h-full md:w-48" src="/image.jpg" alt="图片">
    </div>
    <div class="p-8">
      <div class="uppercase tracking-wide text-sm text-indigo-500 font-semibold">标签</div>
      <h2 class="mt-1 text-xl font-medium text-black">标题</h2>
      <p class="mt-2 text-gray-500">描述文字,这是一段示例内容。</p>
    </div>
  </div>
</div>

这段代码实现了一个响应式卡片:手机版竖排,电脑版横排。

相关推荐
java1234_小锋6 小时前
【技术专题】HTML5 网页技术 - HTML5简介 & HTML5 文档结构
前端·html·html5
鶴哥只手遮天6 小时前
Vue 3 核心源码深度剖析系列(v3.5.44)-第 1 章 项目全景:monorepo 架构与工程化体系
前端·vue.js·开源
流星。。方6 小时前
小团队官网SEO落地:前端语义化与静态生成的工程实践
前端·状态模式
用户530429765797 小时前
盘点危化品搬运诊断的6类工具与自处理边界判断
前端
curtain7 小时前
从古法编程到 Agent:我入行这两年,AI 改变了什么
前端·openai
zyfts7 小时前
10分钟自制Codex钉钉通知Skill:AI干完活自动钉钉提醒你
前端
大孜然7 小时前
孜然QQ频道自动化程序机器人配置教程
前端
用户469384921557 小时前
AIUI 焦点高亮切换失效排查与规避:为什么按钮不变换形态呢?
前端
派大鑫wink7 小时前
纯前端实现软考中级·软件设计师备考学习网站
前端·学习
kyriewen7 小时前
我扒了 npm 三年数据:AI 没把依赖变胖,是把包变多了
前端·人工智能·程序员