@while
A regra @while
, escrita @while <expression> { ... }
, avalia o seu bloco se sua expressão retornar true
. Então, se sua expressão continuar a retornar true
, avalia o seu bloco novamente. Isto continua até a expressão finalmente retornar false
.
SCSS Syntax
@use "sass:math";
/// Divide `$value` por `$ratio` até estiver abaixo de `$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 Syntax
@use "sass:math"
/// Divide `$value` por `$ratio` até estiver abaixo de `$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 Output
sup {
font-size: 12.3609394314px;
}
⚠️ Atenção!
Embora @while
é necessário para algumas folhas de estilos particularmente complexas, estarás melhor usando ou @each
ou @for
se qualquer um delas funcionar. São mais claras para o leitor, e frequentemente também mais rápido de compilar:
Veracidade e FalsidadeVeracidade e Falsidade permalink
Em qualquer parte que true
ou false
forem permitidos, podes usar outros valores também. Os valores false
e null
são falsos, o que significa que a Sass considera-os para indicar falsidade e motivos de condições falharem. Todo outro valor é considerado verdadeiro, então a Sass considera-os para funcionar como true
e motivo das condições serem bem-sucedidas.
Por exemplo, se quiseres verificar se uma sequência de caracteres contém um espaço, podes apenas escrever string.index($string, "")
. A função string.index()
retorna null
se a sequência de caracteres não for encontrada e de outro modo um número.
⚠️ Atenção!
Algumas linguagens consideram mais valores falsos do que false
e null
. A Sass não é uma dessas linguagens! Sequências de caracteres vazias, listas vazias, e o número 0
são todos verdadeiros na Sass.