Szám rögzítése N számjegyűre - CSS-trükkök

Tartalomjegyzék

Ha a számokat JavaScript-ben vagy bármely más programozási nyelven kezeljük, akkor lehet nszámokat csonkolni számjegyek után . Sajnos Sassban nincs ilyen funkció. Ennek ellenére a kerekítéssel és a pontossággal kapcsolatos kérdések előfordulnak, ha például százalékos alapú rácsrendszereket kezelünk.

Itt van a Sass megvalósítása toFixed():

/// toFixed() function in Sass /// @author Hugo Giraudel /// @param (Number) $float - Number to format /// @param (Number) $digits (2) - Number of digits to leave /// @return (Number) @function to-fixed($float, $digits: 2) ( $sass-precision: 5; @if $digits > $sass-precision ( @warn "Sass sets default precision to #($sass-precision) digits, and there is no way to change that for now." + "The returned number will have #($sass-precision) digits, even if you asked for `#($digits)`." + "See https://github.com/sass/sass/issues/1122 for further informations."; ) $pow: pow(10, $digits); @return round($float * $pow) / $pow; )

Vegye figyelembe, hogy a Sass alapértelmezett pontossága 5 számjegy, és a mai napig nincs lehetőség a konfigurálására. Emiatt a Sass nem számíthat 5-nél nagyobb számot, függetlenül attól, hogy a függvénynek milyen számot adott $digits.

Ehhez a funkcióhoz szükség van egy olyan powfunkcióra is, amely (még) nem honos a Sass-ban. A Compass programban létezik, de ha nem használja az Compass szoftvert vagy bármely más könyvtárat, amely biztosítja, akkor szükség lehet saját powfunkciójára. Szerencsére meglehetősen egyszerű megvalósítani:

/// Power function /// @param (Number) $x /// @param (Number) $n /// @return (Number) @function pow($x, $n) ( $ret: 1; @if $n >= 0 ( @for $i from 1 through $n ( $ret: $ret * $x; ) ) @else ( @for $i from $n to 0 ( $ret: $ret / $x; ) ) @return $ret; )

érdekes cikkek...