Der er en masse forvirring omkring den måde, enheder fungerer i Sass. Alligevel fungerer de nøjagtigt som de gør i det virkelige liv. Hvis du vil fjerne værdienheden, skal du dele den med 1 enhed. For eksempel skal du dele den med for at fjerne cm
enheden af . Det fungerer nøjagtigt det samme i Sass.42cm
1cm
$length: 42px; $value: $length / 1px; // -> 42
Men hvad hvis du ikke kender enheden i brug? Lad os sige, at det kunne være hvad som helst, fra pixels til em
eller endda vw
og ch
. Så er vi nødt til at abstrahere logikken i en funktion:
/// Remove the unit of a length /// @param (Number) $number - Number to remove unit from /// @return (Number) - Unitless number @function strip-unit($number) ( @if type-of($number) == 'number' and not unitless($number) ( @return $number / ($number * 0 + 1); ) @return $number; )
Beregningen kan se mærkelig ud, men det giver faktisk mening. For at have 1
af enheden af $number
kan vi gange $number
med 0
og derefter tilføje 1
.
Anvendelse
$length: 42px; $value: strip-unit($length); // -> 42