SCSS mixin中if / else条件的语法

嗨,我正在尝试学习SASS / SCSS,并试图为clearfix重构我自己的mixin

我想要的是mixin基于我是否将mixin传递为宽度。

到目前为止的想法(仅伪代码,因为我将包括其他mixins)

@mixin clearfix($width) {

   @if !$width {

    // if width is not passed, or empty do this

   } @else {

        display: inline-block;
        width: $width;
   }
}

我以为我可以这样称呼它,但是它没有用。

@include clearfix();

要么

@include clearfix(100%)

要么

@include clearfix(960px)

我将以最好或正确的方式为您提供帮助!

Gil番长Stafan2020/03/18 15:35:29

您可以将参数默认设置为nullfalse
这样,测试值是否已作为参数传递将更短。

@mixin clearfix($width: null) {

  @if not ($width) {

    // if width is not passed, or empty do this

  } @else {

    display: inline-block;
    width: $width;

  }
}