Ответ 1
Для Sass 3.3 и более поздних версий
Как и в случае Sass 3.3, существует функция variable-exists()
. Из журнал изменений:
- Теперь можно определить существование различных конструкций Сасса, используя эти новые функции:
variable-exists($name)
проверяет, разрешена ли переменная в текущей области.global-variable-exists($name)
проверяет, существует ли глобальная переменная данного имени....
Пример использования:
$some_variable: 5;
@if variable-exists(some_variable) {
/* I get output to the CSS file */
}
@if variable-exists(nonexistent_variable) {
/* But I don't */
}
Для Sass 3.2.x и ранее (мой первоначальный ответ)
Сегодня я столкнулся с одной и той же проблемой: попытался проверить, установлена ли переменная, и если это так добавляет стиль, используя mixin и т.д.
После прочтения функции isset()
не будет добавлено в sass, я нашел простую обходную процедуру, используя !default
ключевое слово:
@mixin my_mixin() {
// Set the variable to false only if it not already set.
$base-color: false !default;
// Check the guaranteed-existing variable. If it didn't exist
// before calling this mixin/function/whatever, this will
// return false.
@if $base-color {
color: $base-color;
}
}
Если false
является допустимым значением для вашей переменной, вы можете использовать:
@mixin my_mixin() {
$base-color: null !default;
@if $base-color != null {
color: $base-color;
}
}