在Sass函数中添加两个值将创建';px和x27;

在Sass函数中添加两个值将创建';px和x27;,sass,Sass,我在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; 并将其添加到基于像素的变量: $em-variabl

我在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;
并将其添加到基于像素的变量:

$em-variable: 1em;
$px-variable: 20px;
例如:

right: $px-variable + (stripAndPx($em-variable));
这将创建此输出:

right: 20px16px;
我希望添加两个值:


右:36px

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

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

为什么您希望能够将20px添加到1em,并获得36px?虽然16px是大多数浏览器中的标准默认字体大小,但用户可以并将更改此值,您永远不能假定1em=16px。@cimmanon我已将其确定为我的基本px值