You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何TailWind无法应用typography.css中的@apply样式?

解决NextJS+Tailwind+shadcn项目拆分CSS后@apply不生效的问题
  • 核心原因:缺少@layer包裹
    Tailwind仅会处理**@layer块内部**的@apply指令,因为它需要明确这些样式归属的层级(base/components/utilities),才能正确解析工具类并注入到最终CSS中。你之前在global.css的@layer base里写的样式能生效,是因为处于@layer范围内;移到typography.css后如果没加@layer,@apply会被直接忽略,只有普通CSS属性(如color:red)能正常生效。

  • 解决步骤

    1. 给typography.css添加@layer包裹
      将排版样式放入对应的@layer块中(比如原先是base层,就用@layer base),示例:

      /* typography.css */
      @layer base {
        h1 {
          @apply text-4xl font-bold text-red-600;
        }
        /* 其他排版样式也放在这里 */
      }
      
    2. 确保global.css的@import顺序正确
      在global.css中,@tailwind指令和@import的顺序不影响@layer的合并,但建议将自定义CSS的@import放在@tailwind指令之后,这样自定义样式会覆盖Tailwind的默认基础样式:

      /* global.css */
      @tailwind base;
      @tailwind components;
      @tailwind utilities;
      
      @import './typography.css';
      
      /* 其他全局样式 */
      
  • 额外检查项

    • 确认typography.css的路径正确,避免@import引入失败;
    • 确保Tailwind版本为v3+(shadcn模板默认使用v3,JIT模式默认开启,无需额外配置);
    • 若使用自定义工具类,需确保它们定义在@layer utilities块中,且能被Tailwind正确识别。

内容的提问来源于stack exchange,提问作者itinance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 03:22:47