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

SASS使用math.div()时内部传入变量触发编译报错问题

关于Sass math.div() 传入变量报错问题的解决方案

math.div()是Sass内置的数值运算函数,仅支持传入**数值类型(含带单位的合法数值)**作为参数。如果传入插值转换后的字符串、带引号的字符串类数值,都会触发编译报错。

对应问题解法

  • 不要在math.div()内部用插值语法#{}:插值会强制把变量转换为字符串类型,完全不符合函数入参要求,会直接把警告升级为编译错误
  • 确保传入的变量本身是合法数值类型:不要给变量加引号、不要提前用插值处理变量赋值

错误写法示例

// 错误1:函数内部加插值
@use "sass:math";
$width: 300px;
.item {
  width: math.div(#{$width}, 3);
}

// 错误2:变量本身是字符串类型
@use "sass:math";
$width: "300px";
.item {
  width: math.div($width, 3);
}

正确写法示例

// 顶部必须引入math模块(项目已全局引入可省略)
@use "sass:math";
// 变量声明为纯数值类型,可携带合法单位
$width: 300px;
.item {
  // 直接传入变量即可,无需额外处理
  width: math.div($width, 3); // 编译后输出 width: 100px;
}

// 特殊场景:变量无单位,运算后再拼接单位的写法
@use "sass:math";
$baseNum: 600;
.item {
  width: math.div($baseNum, 3) + px;
}

对应的报错截图参考:
math.div编译错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:24:02