css - 将 scss mixin 设置回 true

标签 css sass

我正在学习 SASS/SCSS 并尝试使用 mixins,试图了解可用的不同可接受变体。

下面是我用来创建 box-shadows 的内容,我使用 if 和 else 语句来显示带有或不带有 inset 属性的以太币。

@mixin box-shadow($inset: false, $horizontal: 0px, $vertical: 1px, $blur: 2px, $color: 000) {
    @if $inset {
        box-shadow: $inset $horizontal $vertical $blur $color;
    }
    @else {
        box-shadow: $horizontal $vertical $blur $color;
    }
}

我想知道如何将 $inset: false 设置为 true 以使其按预期工作。

或者是否有更有效的方法来实现我想要做的事情?

最佳答案

我认为与其包含变量$inset,不如包含关键字inset。这样,您可以传递 true 或 false,它会正确解析:

@mixin box-shadow($inset: false, $horizontal: 0px, $vertical: 1px, $blur: 2px, $color: 000) {
    @if $inset {
        box-shadow: inset $horizontal $vertical $blur $color;
    }
    @else {
        box-shadow: $horizontal $vertical $blur $color;
    }
}

.no-inset {
  @include box-shadow($inset: false);
  }

  .inset {
  @include box-shadow($inset: true);
  }

输出:

.no-inset {
  box-shadow: 0px 1px 2px 0;
}

.inset {
  box-shadow: inset 0px 1px 2px 0;
}

关于css - 将 scss mixin 设置回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29792790/

相关文章:

javascript - 无法根据 bootstrap 3 中的下拉选择在输入字段中获取值

html - 显示行内 block

html - CSS:垂直和水平对齐文本?

Javascript 隐藏/显示 div 不起作用

javascript - 如何将这 2 个子 div 并排附加到 1 div?

html - 如何使一个字形图标成为类似于推特的按钮?

css - SASS优化边框到一行代码

带注释的 SASS 编译

css - 如何使内联图像在较小的屏幕上响应

html - 最大高度等于最大宽度