Логические
Логические значения - это логические значения true
и false
. В дополнение к их буквальным формам, логические значения возвращаются операторами равенства и реляционные, а также многие встроенные функции, такие как math.comparable()
и map.has-key()
.
SCSS Syntax
@use "sass:math";
@debug 1px == 2px; // false
@debug 1px == 1px; // true
@debug 10px < 3px; // false
@debug math.comparable(100px, 3in); // true
Sass Syntax
@use "sass:math"
@debug 1px == 2px // false
@debug 1px == 1px // true
@debug 10px < 3px // false
@debug math.comparable(100px, 3in) // true
Вы можете работать с логическими значениями, используя логические операторы. Оператор and
возвращает true
если обе стороны равны true
, а оператор or
возвращает true
, если любая сторона имеет значение true
. Оператор not
возвращает противоположность одиночному логическому значению.
SCSS Syntax
@debug true and true; // true
@debug true and false; // false
@debug true or false; // true
@debug false or false; // false
@debug not true; // false
@debug not false; // true
Sass Syntax
@debug true and true // true
@debug true and false // false
@debug true or false // true
@debug false or false // false
@debug not true // false
@debug not false // true
Использование логических значений permalinkИспользование логических значений
Вы можете использовать логические значения, чтобы выбрать, выполнять ли какие-либо действия в Sass. Правило @if
оценивает блок стилей, если его аргумент равен true
:
SCSS Syntax
@mixin avatar($size, $circle: false) {
width: $size;
height: $size;
@if $circle {
border-radius: $size / 2;
}
}
.square-av {
@include avatar(100px, $circle: false);
}
.circle-av {
@include avatar(100px, $circle: true);
}
Sass Syntax
@mixin avatar($size, $circle: false)
width: $size
height: $size
@if $circle
border-radius: $size / 2
.square-av
@include avatar(100px, $circle: false)
.circle-av
@include avatar(100px, $circle: true)
CSS Output
.square-av {
width: 100px;
height: 100px;
}
.circle-av {
width: 100px;
height: 100px;
border-radius: 50px;
}
Функция if()
возвращает одно значение, если его аргумент равен true
и другое, если его аргумент равен false
:
SCSS Syntax
@debug if(true, 10px, 30px); // 10px
@debug if(false, 10px, 30px); // 30px
Sass Syntax
@debug if(true, 10px, 30px) // 10px
@debug if(false, 10px, 30px) // 30px
Истинность и ложность permalinkИстинность и ложность
Везде, где разрешены true
или false
, вы также можете использовать другие значения. Значения false
и null
равны файльшивому, что означает, что Sass считает, что они указывают на ложность и вызывают невыполнение условий. Все остальные значения считаются истинными, поэтому Sass считает, что они работают как true
и вызывают выполнение условий.
Например, если вы хотите проверить, содержит ли строка пробел, вы можете просто написать string.index($string, " ")
. Функция string.index()
возвращает null
, если строка не найдена, и число в противном случае.
⚠️ Внимание!
Некоторые языки считают ложными больше значений, чем просто false
и null
. Sass - не один из таких языков! Пустые строки, пустые списки и число 0
- все это истинно в Sass.