10

我在 Sass 中有一个自定义函数,它接受一个 em 值,剥离单位并创建一个 px 值:

@function stripAndPx($in){
  $stripped: $in / ($in * 0 + 1); //strip unit
  @return #{ (($stripped) * 16) + 'px'}; //convert to px
}

然后我尝试获取一个 em 变量:

$em-variable: 1em;

并将其添加到基于像素的变量中:

$px-variable: 20px;

例子:

right: $px-variable + (stripAndPx($em-variable));

这会创建此输出:

right: 20px16px;

我期望添加两个值:

right: 36px;

4

1 回答 1

19

您的函数返回的是字符串,而不是数字。Sass 假设您想要连接它们,因为这就是它对字符串和任何其他类型所能做的一切。

@function stripAndPx($in){
  $stripped: $in / ($in * 0 + 1); //strip unit
  @return (($stripped) * 16) * 1px; //convert to px
}
于 2013-06-19T17:31:33.610 回答