SASS 计算插值

SASS Calc Interpolation

我有一个 SASS 变量:

$default-padding: 15px

我想使用它来使用计算函数设置 CSS 宽度 属性。

我要根据 $default-padding 变量的值进行各种计算。例如,宽度为 100% - (2 * $default-padding)。因为左右都有padding.

我正在尝试设置一个局部变量(使用 Bourbon 的 strip-unit 方法):

$default-padding-left-and-right: #{(strip-unit($default-padding) * 2)}px;

在这个用例中,我希望这个变量的结果是 30px,我想在以下规则中使用它:

.popup {
    width: calc(100% - #{$default-padding-left-and-right});
}

这行不通,结果CSS是:

.popup {
    width: calc(100% - strip-unit(15px)px);
}

知道我做错了什么吗?

Bourbon 函数是 strip-units 而不是 strip-unit - 更改它应该可以解决您的问题

两件事:

  1. 好像没有找到strip-unit函数(为什么函数 名称被打印出来)
  2. 你不应该对 $default-padding-left-and-right 进行插值(它将变量值转换为字符串)——而是使用乘法。

示例:

@function strip-unit($num) { @return $num / ($num * 0 + 1); }

$default-padding: 15px;
$default-padding-left-and-right: strip-unit($default-padding) * 2px;

.popup {
  width: calc(100% - #{$default-padding-left-and-right});
} 

输出:

.popup {
  width: calc(100% - 30px);
}