Css 与Sass函数一起使用时,Sass divide不起作用
我有一个将px转换为em的函数:Css 与Sass函数一起使用时,Sass divide不起作用,css,sass,Css,Sass,我有一个将px转换为em的函数: @function em($pixels, $context: 16px) { @return #($pixles/$context)em } 我有一个使用此函数的变量: $margin: em(60px); 现在我试着这样使用它: div { margin: 0 -#{$margin / 2}; } div { margin: 0 ($margin / -2); } 但这是无效的css。devtools中的输出为: ma
@function em($pixels, $context: 16px) {
@return #($pixles/$context)em
}
我有一个使用此函数的变量:
$margin: em(60px);
现在我试着这样使用它:
div {
margin: 0 -#{$margin / 2};
}
div {
margin: 0 ($margin / -2);
}
但这是无效的css。devtools中的输出为:
margin: 0 -3.75em / 2
当我删除该函数并仅使用em值时,它正在工作。
我怎样才能做到这一点呢?首先,我认为您的函数代码中有一个输入错误,但我忽略了这一点,因为根据您的输出,您的函数运行良好。真正的问题在于函数输出的值类型。由于只是使用插值将
em
连接到计算值,因此输出是字符串而不是数字,因此无法对其执行数学运算
不要连接em
,而是使用乘以1em
的乘法来附加单位,现在您的原始代码就可以正常工作了
@function em($pixels, $context: 16px) {
@return ($pixels/$context) * 1em;
}
哈利说的话,
但当您使用该变量时,请按如下方式尝试:
div {
margin: 0 -#{$margin / 2};
}
div {
margin: 0 ($margin / -2);
}
不工作…现在输出为:边距:0-3.75*1em/2@Developer123:你确定吗?这是一个在线演示@,它似乎工作得很好。欢迎@Developer123。我正在删除在线样本,以避免我的GIST列表中出现混乱。请不要介意:黛雅,这也是正确的。我只是把它保持原样,因为在它上面没有做任何额外的数学运算,所以连接就可以了。