@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是允许的,可以使用其它值。值falsenullfalsey,这意味着Sass认为它们以指示虚假和原因的条件失败。其他所有值都被认为是真实的,因此Sass认为它们像工作一样,true并导致成功的条件。

例如,如果要检查字符串是否包含空格,则只需编写即可string.index($string, " ")。如果找不到字符串,则 返回该string.index()函数null,否则返回数字。

Head️抬头!

某些语言认为比正义false和正义更虚假的价值观null。Sass不是这些语言之一!空字符串,空列表和数字0在Sass中都是真实的。