@while
如果@while
规则@while <expression> { ... }
的表达式返回,则写入的规则将评估其块true
。然后,如果其表达式仍然返回true
,它将再次评估其块。这一直持续到表达式最终返回为止false
。
SCSS 语法
/// Divides `$value` by `$ratio` until it's below `$base`.
@function scale-below($value, $base, $ratio: 1.618) {
@while $value > $base {
$value: $value / $ratio;
}
@return $value;
}
$normal-font-size: 16px;
sup {
font-size: scale-below(20px, 16px);
}
Sass语法
/// Divides `$value` by `$ratio` until it's below `$base`.
@function scale-below($value, $base, $ratio: 1.618)
@while $value > $base
$value: $value / $ratio
@return $value
$normal-font-size: 16px
sup
font-size: scale-below(20px, 16px)
CSS 输出
sup {
font-size: 12.36094px;
}
Head️抬头!
尽管@while
对于一些特别复杂的样式表是必需的,但是通常最好使用其中任何一个,@each
或者@for
如果它们中的任何一个都能工作。对于读者而言,它们更清晰,并且通常也更快地进行编译。
真实与虚假永久存在
任何地方true
或者false
是允许的,可以使用其它值。值false
和null
是falsey,这意味着Sass认为它们以指示虚假和原因的条件失败。其他所有值都被认为是真实的,因此Sass认为它们像工作一样,true
并导致成功的条件。
例如,如果要检查字符串是否包含空格,则只需编写即可string.index($string, " ")
。如果找不到字符串,则 返回该string.index()
函数null
,否则返回数字。
Head️抬头!
某些语言认为比正义false
和正义更虚假的价值观null
。Sass不是这些语言之一!空字符串,空列表和数字0
在Sass中都是真实的。