Для Sass 3.3 и выше
Начиная с Sass 3.3, есть функция variable-exists()
. С список изменений :
- Теперь возможно определить существование различных конструкций Sass, используя эти новые функции:
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 и более ранних версий (мой оригинальный ответ)
Сегодня я столкнулся с той же проблемой: попытаться проверить, установлена ли переменная, и если да, добавить стиль, использовать миксин и т. Д.
Прочитав, что функция isset()
не будет добавлена в sass , я нашел простой обходной путь, используя ключевое слово !default
:
@mixin my_mixin() {
// Set the variable to false only if it's 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;
}
}