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

SCSS自定义calcSize函数出现calc运算未定义错误该如何解决

错误原因

SCSS作为预处理器,所有自定义函数内的数值运算都会在编译阶段执行,而calc()是CSS原生函数,依赖浏览器运行时才能拿到动态值(比如视口宽度vw)。你将calc(100vw - 405px)赋值给SCSS变量$containerWidth时,该变量实际存储的是字符串类型的CSS表达式,SCSS编译阶段无法对字符串执行数值乘除运算,因此触发报错。

修复方案

将运算逻辑直接拼接为CSS原生calc()表达式,SCSS仅负责变量插值,不需要在预编译阶段执行计算,修改后的函数如下:

@function calcSize($value) {
  $initialContainer: 1278;
  @return calc(#{$value} * (100vw - 405px) / #{$initialContainer});
}

原有调用逻辑不需要修改:

.module-title {
  font-weight: 700;
  font-size: calcSize(45);
}

编译后会生成合法的CSS代码,动态计算逻辑交给浏览器运行时处理即可:

.module-title {
  font-weight: 700;
  font-size: calc(45 * (100vw - 405px) / 1278);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:06:03