@while
@while
ルールは、@while <式> { ... }
と記述し、その式がtrue
を返す場合にブロックを評価します。そして、式が依然としてtrue
を返す場合、ブロックを再度評価します。この処理は、式が最終的にfalse
を返すまで続きます。
SCSS構文
@use "sass:math";
/// Divides `$value` by `$ratio` until it's below `$base`.
@function scale-below($value, $base, $ratio: 1.618) {
@while $value > $base {
$value: math.div($value, $ratio);
}
@return $value;
}
$normal-font-size: 16px;
sup {
font-size: scale-below(20px, 16px);
}
Sass構文
@use "sass:math"
/// Divides `$value` by `$ratio` until it's below `$base`.
@function scale-below($value, $base, $ratio: 1.618)
@while $value > $base
$value: math.div($value, $ratio)
@return $value
$normal-font-size: 16px
sup
font-size: scale-below(20px, 16px)
CSS出力
sup {
font-size: 12.3609394314px;
}
⚠️ 注意!
@while
は、いくつかの特に複雑なスタイルシートには必要ですが、@each
または@for
のいずれかが動作する場合は、そちらを使用する方が通常は優れています。そちらの方が読者にとって分かりやすく、コンパイルも高速なことがよくあります。
真偽値真偽値のパーマリンク
true
またはfalse
が許可されている場所では、他の値も使用できます。値false
とnull
は偽であり、Sassはそれらを偽を表し、条件を失敗させるものと見なします。他のすべての値は真であると見なされるため、Sassはそれらをtrue
のように動作し、条件を成功させるものと見なします。
たとえば、文字列にスペースが含まれているかどうかを確認する場合は、string.index($string, " ")
と記述するだけで済みます。string.index()
関数は、文字列が見つからない場合はnull
を返し、それ以外の場合は数値を返します。
⚠️ 注意!
一部の言語では、false
とnull
だけでなく、より多くの値を偽と見なします。Sassはそのような言語の1つではありません!空の文字列、空のリスト、および数値0
はすべてSassでは真です。