Tailwind utility类不生效最常见的原因是PurgeCSS误删未直接匹配的类名或CSS引入顺序导致覆盖;需检查content配置路径是否完整、动态class是否显式声明、@tailwind三指令顺序是否正确、JIT模式是否正常工作及PostCSS插件是否加载成功。
Tailwind
的 utility 类不生效,最常见的原因是 PurgeCSS(或新版的 content 配置)误删了未直接匹配的类名,或是 CSS 引入顺序导致样式被覆盖。
content 配置是否覆盖所有模板路径Tailwind 会根据 tailwind.config.js 中的 content(旧版叫 purge)字段扫描文件,只保留实际用到的 class。如果路径没写全,比如漏掉 .vue、.tsx 或动态拼接的 class,对应样式就会被移除。
content 数组包含所有含 Tailwind class 的源文件,例如:content: ["./src/**/*.{js,ts,jsx,tsx,vue}"]
!./node_modules/**),Tailwind 不需要你手动排除 node_modulesclass="text-${color}-500"),需在 content 中显式列出可能值,或改用 @layer utilities 定义安全类Tailwind 的 @tailwind base、@tailwind components、@tailwind utilities 必须按顺序写在主 CSS 入口里,且不能被其他 CSS(尤其是重置库或第三方样式)覆盖。
main.css 或 index.css 中三者顺序完整,没有注释掉某一层@tailwind utilities 后又引入了全局 CSS,它可能用 !important 或高优先级选择器覆盖了 utility 类style 标签或 tailwind.css 中 —— 如果完全没出现,是 Purge 问题;如果出现了但被划掉,是覆盖问题Tailwind v3 默认启用 JIT(Just-in-Time)引擎,它按需生成 CSS,但仅在开发时监听文件变化。构建生产包时若未正确触发,也可能导致缺失。
npx tailwindcss -i ./src/input.css -o ./dist/output.css --watch 手动测试编译,确认 class 是否出现在输出 CSS 中mode: "aot")可临时验证是否为 JIT 监听异常,但不推荐长期使用Tailwind 依赖 PostCSS 插件,如果插件未注册、版本冲突或配置被覆盖,@tailwind 指令就不会解析。
postcss.config.js 中有 tailwindcss 和 autoprefixer,且顺序无误vite.config.js 是否遗漏 tailwindcss 插件(通常不需要,但自定义 PostCSS 配置时易出错)postcss-loader 已启用,并传入正确的 postcss.config.js