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

Tailwind screen函数触发Sass编译错误,请求排查解决

问题:Sass无法识别Tailwind的screen函数生成媒体查询

在global.scss中使用Tailwind的screen()函数编写媒体查询时,Sass编译器报错,代码及配置如下:

全局样式文件 global.scss

@tailwind base;
@tailwind components;
@tailwind utilities;

.h-main {
  font-size: 74px;
  font-weight: 600;
  color: white;

  @media screen(sm) { 
    font-size: 30px;
  }
}

Tailwind配置文件 tailwind.config.js

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    './pages/**/*.{js,ts,jsx,tsx,mdx}',
    './components/**/*.{js,ts,jsx,tsx,mdx}',
    './app/**/*.{js,ts,jsx,tsx,mdx}',
  ],
  theme: {
    extend: {
      backgroundImage: {
        'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
        'gradient-conic':
          'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
      },
    },
    screens: {
      'sm': '600px',
      'md': '900px',
      'lg': '1200px',
      'xl': '1536px',
      'xs': '0px',
    }
  },
  plugins: [],
}

编译器报错信息

SassError: expected "{".
   ╷
69 │   @media screen(sm) {
   │                ^
   ╵

解决方案

核心原因

Tailwind的screen()是自定义Sass函数,直接写@media screen(sm)会被Sass当作无效CSS语法解析,必须通过插值让Sass识别函数,或者使用Tailwind提供的简化指令@screen。


方法1:使用Tailwind的@screen指令(推荐)

这是最简洁的写法,Tailwind已经封装了媒体查询逻辑,直接替换原有代码即可:

@tailwind base;
@tailwind components;
@tailwind utilities;

.h-main {
  font-size: 74px;
  font-weight: 600;
  color: white;

  @screen sm { 
    font-size: 30px;
  }
}

方法2:使用插值调用screen()函数

如果一定要用screen()函数,需要先导入Tailwind的屏幕断点Sass文件,并用Sass插值#{}包裹函数调用:

@tailwind base;
@tailwind components;
@tailwind utilities;
// 导入Tailwind的Screens函数
@import "tailwindcss/screens";

.h-main {
  font-size: 74px;
  font-weight: 600;
  color: white;

  @media #{screen(sm)} { 
    font-size: 30px;
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:43:14