Sassで数値から単位を除去する

Sassで単位のついた数値から単位を除去する方法をメモ。

サンプルコード

Sassの関数で以下のように設定します。

@function strip-unit($number) {
  @if type-of($number) == 'number' and not unitless($number) {
    @return $number / ($number * 0 + 1);
  }
  @return $number;
}

2行目のifはtype-ofで値の型がnumberかどうか、not unitlessで値に単位が付いているかどうかを確認しています。
単位付きの数値の場合は3行目で単位を除去して返す、それ以外は5行目でそのまま値を返しています。

数値から単位を除去したい場合、同じ単位の数値で割ると単位が除去されます。
($number * 0 + 1) で値が1で同じ単位がついた状態にした上で、$numberを同じ単位のついた1で割ることで、数値はそのままで単位のみ除去しています。

これで数値から単位を除去することができました。

$test: strip-unit(100px); // 100
$test: strip-unit(3em); // 3
$test: strip-unit(2rem); // 2
$test: strip-unit(50px + 30px); // 80
$test: strip-unit(aaa); // aaa

参考サイト

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年4月
 123456
78910111213
14151617181920
21222324252627
282930