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

SASS中@mixin定义@font-face编译为CSS时出现异常嵌套问题求助

问题原因
  • 核心错误为调用@font-face相关mixin的位置错误:@font-face是CSS顶层规则,作用是全局注册自定义字体,不允许嵌套在任意普通选择器(如body)内部。
  • 你将包含@font-face定义的mixin放在body选择器中调用时,SASS编译会自动将外层的body选择器注入到@font-face内部,最终生成了非法的嵌套结构。
修复方案
  1. 将mixin的调用移到全局作用域即可,@font-face只需要全局注册一次,后续所有选择器都可以直接使用注册好的字体名:
@import "./abstracts/typography";

// 全局调用mixin注册两种字重,不需要放在选择器内
@include fontType("normal");
@include fontType("bold");

body {
    // 直接使用已经注册好的字体
    font-family: "gotham", sans-serif;
    background-color: $background-color;
    line-height: 1.6;  
}
  1. (可选优化)如果你的项目不需要动态控制字体注册逻辑,也可以直接去掉mixin封装,直接在_typography.scss中全局写两个@font-face规则即可,更简洁直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:54:01