Создание миксина Sass с необязательными аргументами

Я пишу миксин следующим образом:

@mixin box-shadow($top, $left, $blur, $color, $inset:"") {
    -webkit-box-shadow: $top $left $blur $color $inset;
    -moz-box-shadow: $top $left $blur $color $inset;
    box-shadow: $top $left $blur $color $inset;
}

Когда меня вызывают, я действительно хочу, чтобы, если значение $ inset не было передано, ничего не выводилось, а не компилировалось в нечто вроде this:

-webkit-box-shadow: 2px 2px 5px #555555 "";
-moz-box-shadow: 2px 2px 5px #555555 "";
box-shadow: 2px 2px 5px #555555 "";

Как переписать миксин, чтобы при отсутствии значения $ inset ничего не выводилось?

190
задан Volker E. 1 August 2014 в 05:33
поделиться

1 ответ

Sass поддерживает операторы @if . (См. Документацию .)

Вы можете написать свой миксин следующим образом:

@mixin box-shadow($top, $left, $blur, $color, $inset:"") {
  @if $inset != "" {
    -webkit-box-shadow:$top $left $blur $color $inset;
    -moz-box-shadow:$top $left $blur $color $inset;
    box-shadow:$top $left $blur $color $inset;
  }
}
47
ответ дан 23 November 2019 в 05:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: