考虑以下问题:
$font-size: 18;
$em: $font-size;
$column: $font-size * 3; // The column-width of my grid in pixels
$gutter: $font-size * 1; // The gutter-width of my grid in pixels
$gutter-em: #{$gutter / $em}em; // The gutter-width in ems.
$column-em: #{$column / $em}em; // The column-width in ems;
$foo = $gutter-em / 2; // This results in a value like "1em/2". :(
$bar = ($gutter-em / 2); // this doesn't work either, same as above.
如何生成有效的$foo
,并且我可以在其他表达式中进一步重复使用?
答案 0 :(得分:26)
Sass不能对字符串执行arithemetic操作,只能连接。当您使用插值时,您创建的字符串看起来就像一个数字:
@debug type-of(#{10px}); // string
@debug type-of('10px'); // string
@debug type-of(unquote('10px')); // string
@debug type-of(10px); // number
如果您想要一个数字,请不要使用插值,也不要使用引号。要将整数(例如10
)转换为长度(例如10px
),请使用乘法:
$gutter-em: ($gutter / $em) * 1em;
@debug type-of($gutter-em); // number