我编写了一个非常简单的Sass混合器,用于将像素值转换为rem值(请参见Jonathan Snook关于使用rems的好处的文章)。以下是代码:
// Mixin Code
$base_font_size: 10; // 10px
@mixin rem($key,$px) {
#{$key}: #{$px}px;
#{$key}: #{$px/$base_font_size}rem;
}
// Include syntax
p {
@include rem(font-size,14);
}
// Rendered CSS
p {
font-size: 14px;
font-size: 1.4rem;
}
这个mixin很好用,但是我对它的include语法不太满意。你看,我更想在include语句中传递像素值而不是简单的数字。这是一个小细节,但它会为当前不存在的include语句添加语义含义。当我尝试将像素值传递到include语句时,这是我得到的结果:
// Include syntax
p {
@include rem(font-size,14px);
}
// Rendered CSS
p {
font-size: 14pxpx;
font-size: 1.4pxrem;
}
一旦Sass看到一个像素值被传递到方程中,它就会输出“px”。我希望能够去掉这个度量单位,就像在JavaScript中使用parseFloat或parseInt一样。如何在Sass mixin中实现这个功能?