引言
Tailwind 是"原子化 CSS"框架:使用语义清晰的类名堆出样式,不再来回切 CSS 文件。本文将带大家基于项目里的示例与说明,带你用 Vite + React 快速跑通 Tailwind v4,并用一个"商品卡片"组件感受它的高效。
为什么是 Tailwind
- 上手快:几乎不用写 CSS,直接堆类名。
- 体验好: 内置 hover、过渡、阴影、圆角、布局等常见样式。
- 性能友好:按需生成,包体更小。
- 生态新 :v4 配合
@tailwindcss/vite
,更"零配置"。
快速开始(Vite + React + Tailwind v4)
- 安装依赖
bash
# 任选其一
npm i tailwindcss @tailwindcss/vite -D
# or
pnpm add tailwindcss @tailwindcss/vite -D
- 启用 Vite 插件
vite.config.js
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import tailwindcss from '@tailwindcss/vite'
// https://vite.dev/config/
export default defineConfig({
plugins: [
react(),
tailwindcss()
],
})
- 在入口样式引入 Tailwind
src/index.css
@import "tailwindcss";
至此,无需 tailwind.config.js
、无需 postcss.config.js
,即可使用 Tailwind 类名。
实战:用类名堆出一个商品卡片
下面的组件基本不写 CSS,只用类名构建结构、排版、动效与状态:
jsx
return (
<div className='max-w-xs rounded-lg overflow-hidden bg-white transition-transform duration-300 hover:shadow-xl hover:scale-105 mx-auto'>
{/* <h1 className="text-3xl font-bold underline">hello world,Tailwindcss</h1> */}
<div className='relative'>
<img
src="https://images.unsplash.com/photo-1505740420928-5e560c06d30e"
alt=""
className='w-full h-64 object-cover'
/>
<span className="absolute top-2 left-2 bg-blue-600 text-white text-xs font-bold px-2 py-1 rounded">
New
</span>
<button className='absolute top-2 right-2 text-gray-500 hover:text-red-500 transition-colors'></button>
</div>
)
- 卡片容器:
max-w-xs rounded-lg overflow-hidden bg-white
定宽+圆角+裁切;hover:shadow-xl hover:scale-105
悬停升起+放大。 - 图像:
w-full h-64 object-cover
保持裁切充满。 - 徽标与心形按钮:绝对定位 + 颜色过渡。
文字溢出省略只需一行类名:
jsx
<h3 className="text-lg font-semibold text-gray-800 line-clamp-1">
Premium Wireless HeadphonesPremium Wireless
</h3>
<p className="text-sm text-gray-500 mt-1 line-clamp-2">
Noise-cancelling, 30-hour battery life, premium sound quality.
</p>
价格区与按钮也同理:
jsx
<div class="mt-3 flex items-center justify-between">
<span class="text-xl font-bold text-gray-900">$199.99</span>
<span class="text-sm text-gray-500 line-through">$249.99</span>
</div>
<button class="mt-4 w-full bg-blue-600 hover:bg-blue-700 text-white font-medium py-2.5 rounded-lg transition-colors focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2">
Add to Cart
</button>
<button class="mt-2 w-full text-blue-600 hover:text-blue-800 text-sm font-medium">
Quick View
</button>

小技巧与概念补充
- 单位与间距 :Tailwind 的间距刻度默认以
0.25rem
为 1 单位(即 4px,根字体 16px 时)。因此:p-4
≈1rem = 16px
p-2
≈0.5rem = 8px
- 多行省略(line-clamp) :直接用
line-clamp-1
、line-clamp-2
即可,Tailwind 会生成所需的-webkit-line-clamp
等样式。底层实现依赖以下组合:display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
- 动效默认好用 :
transition-colors duration-300
配合hover:
前缀即可实现平滑状态切换。
常见问题
- React 中写类名 :用
className
,不要用class
。 - 不生效/无样式 :确认
@tailwindcss/vite
插件已启用,入口是否正确@import "tailwindcss"
。 - 要不要配置文件:v4 搭配 Vite 插件可以"零配置"开用;需要定制主题再引入配置。
结语
Tailwind v4 + Vite 的组合,让"写样式"变成"拼积木"。记住三步:装插件 → 引入 Tailwind → 写类名。剩下的,交给原子化 CSS 即可。