2016-07-20 1 views
0

Как можно изменить функцию преобразования em(), чтобы ограничить следующее преобразованное значение EM до 3 цифр (например: 1.36em)?CSS SASS trim преобразован десятичной

input.scss

@function em($target, $context: $font___base-size) { 
    @return ($target/$context) * 1em; 
} 
body {font-size:em(15px);} 

output.css

body { 
    font-family: sans-serif; 
    font-size: 1.36364em; } 

ответ

0

Использование round()ceil() или floor() следующим образом:

round(($target/$context)*100)/100; 

100 может быть любое число 10^п, где п то число десятичных знаков, которое вы хотите.

Sass-lang documentation on round()

+0

Благодаря Лукас, я изменил свою функцию, чтобы работать так же, как 'pxtoem': – codeMama

0

Я хотел бы пойти на что-то вроде этого:

// Configuration 
$font___base-size : 11px; 
$number-of-digits : 2; 

// Function 
@function em($target, $digits : $number-of-digits, $context: $font___base-size) { 
    $n : 1; 
    @if $digits > 0 { 
     @for $i from 1 through $digits { 
      $n : $n * 10; 
     } 
    } 
    @return round(($target/$context) * $n)/$n * 1em; 
} 

// Example use 
body { 
    font-size:em(15px); 
} 

Выход:

body { 
    font-size: 1.36em; 
}