C'è molta confusione sul modo in cui funzionano le unità in Sass. Tuttavia, funzionano esattamente come nella vita reale. Se vuoi rimuovere l'unità di valore, devi dividerla per 1 unità. Ad esempio, per rimuovere l' cm
unità di 42cm
, devi dividerla per 1cm
. Funziona esattamente allo stesso modo in Sass.
$length: 42px; $value: $length / 1px; // -> 42
Ma cosa succede se non conosci l'unità in uso? Diciamo che potrebbe essere qualsiasi cosa, dai pixel em
ao anche vw
e ch
. Quindi dobbiamo astrarre la logica in una funzione:
/// 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; )
Il calcolo potrebbe sembrare strano ma in realtà ha senso. Per avere 1
l'unità di $number
, possiamo moltiplicare $number
per 0
e quindi aggiungere 1
.
Utilizzo
$length: 42px; $value: strip-unit($length); // -> 42