Как удалить единицы измерения из уравнения микширования Sass?

Я написал очень простой миксин Sass для преобразования значений пикселей в значения rem (см. Статью Джонатана Снука о преимуществах использования 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;
}

Этот миксин работает довольно хорошо, но я немного не удовлетворен синтаксисом include для него. Видите ли, я бы предпочел передать значение пикселя в оператор include вместо простого числа. Это небольшая деталь, но она добавит семантического значения оператору include, которого в настоящее время не существует. Вот что я получаю, когда пытаюсь передать значение пикселя в оператор include:

// Include syntax
p {
  @include rem(font-size,14px);
}

// Rendered CSS
p {
  font-size: 14pxpx;
  font-size: 1.4pxrem;
}

Как только Sass видит, что значение пикселя передается в уравнение, он выводит «px». Я хочу убрать эту единицу измерения , как если бы я использовал parseFloat или parseInt в JavaScript. Как это сделать в миксине Sass?

6
задан Ray Brown 3 August 2011 в 13:14
поделиться