直接学 Tailwind CSS 可行但需先掌握基础 CSS,它用预设 class 重组开发流程;PostCSS 是其依赖的 AST 处理管道;工具链卡点多源于配置疏漏而非语法本身。
学完 display、flex、grid、position 和选择器优先级后,立刻上手 Tailwind 是可行的,但容易卡在「为什么这个 class 要这么写」和「怎么覆盖默认样式」上。它不是替代 CSS,而是用预设 class 重组 CSS 编写流程。
实操建议:
create-react-app 或 vite 搭个空项目,按官方文档跑通 tailwindcss init + @tailwind base 三行指令,别跳过 postcss 配置jit: true(现在叫 content 配置),先手动写几个 bg-blue-500、hover:scale-105 看是否生效,确认 class 真被识别了PostCSS 不是构建工具,也不是 CSS 预处理器,它是个「CSS AST 处理管道」:把 CSS 字符串解析成树,再让插件一层层加工,最后吐出新 CSS。Tailwind 的核心就是靠 postcss-tailwindcss 插件把 @tailwind 指令替换成实际规则。
常见误解:
postcss.config.js 改用 Vite 内置 PostCSS 就能省事 —— 实际上 Vite 5+ 默认不自动加载项目根目录的 PostCSS 配置,必须显式配置 css.postcss 字段build 阶段发现 utility class 消失了,大概率是 content 配置路径没覆盖到你的 HTML/JSX 文件,比如写了 "./src/**/*.{js,ts,jsx,tsx}" 却漏了 .vue 或 .svelte
tailwind.config.js 的 theme.screens —— 先试试 md:max-w-2xl 这种现成组合,80% 场景够用如果目标是进团队写业务,Sass 仍有真实存在感:很多老项目用 @mixin 封装栅格、用 @import 拆文件、靠 & 写嵌套。但它解决的问题(变量、嵌套、复用)现在原生 CSS 也能做::root 自定义属性、env()、clamp()、container query。
更关键的是取舍点:
_variables.scss 和 _mixins.scss 还会出现在 daily commit 里styled-components 或 Emotion)适合组件粒度强、主题切换频繁的场景,但服务端渲染(SSR)时要注意 useInsertionEffect 的执行时机,否则首屏可能闪动
得花半天搞懂的是 CSS Custom Properties 动态换肤方案:用 JS 改 document.documentElement.style.setProperty('--primary', '#3b82f6'),比任何框架都轻量且兼容性好(IE11 除外)不是语法不会,而是部署时才发现某些东西根本没生效。几个高频卡点:
prefers-color-scheme 媒体查询在 Chrome DevTools 里要手动打开「Rendering」面板 → 勾选「Emulate CSS prefers-color-scheme」,否则切暗色模式永远看不到效果aspect-ratio 做卡片比例控制时,若子元素含 img 且没设 height: 100%,图片会溢出容器 —— 这不是 bug,是 aspect-ratio 只作用于容器自身尺寸计算@font-face 中的 src 路径是否为相对路径,CI/CD 打包后静态资源路径变了,要用 url(/fonts/xxx.woff2) 而非 url(../fonts/xxx.woff2)
工具链越厚,离「写一行 CSS 看一眼效果」就越远。先确保本地 localhost:3000 能稳定复现问题,再怀疑是构建配置或 CDN 缓存惹的祸。