26

SASSでネストされたミックスインまたは関数を使用する方法を知っている人はいますか? 私はこのようなものを持っています:

@mixin A(){
    do something....
}

@mixin B($argu){
    @include A();
}
4

3 に答える 3

24

ええ、あなたはすでにそれを正しくやっています。最初の mixin を 2 番目の mixin で呼び出すことができます。このペンをチェックしてください http://codepen.io/crazyrohila/pen/mvqHo

于 2013-04-15T18:04:54.403 に答える
9

ミックスインを複数入れ子にすることも、ミックスイン内でプレースホルダーを使用することもできます。

@mixin a {
  color: red;
}
@mixin b {
  @include a();
  padding: white;
  font-size: 10px;
}
@mixin c{
  @include b;
  padding:5;
}
div {
  @include c();
}

CSSを提供する

div {
  color: red;
  padding: white;
  font-size: 10px;
  padding: 5;
}
于 2016-04-05T07:04:35.237 に答える
4

他の回答で述べたように、ミックスインを他のミックスインに含めることができます。さらに、ミックスインのスコープを設定できます。

.menu {
  user-select: none;

  .theme-dark & {
    color: #fff;
    background-color: #333;

    // Scoped mixin
    // Can only be seen in current block and descendants,
    // i.e., referencing it from outside current block
    // will result in an error.
    @mixin __item() {
      height: 48px;
    }

    &__item {
      @include __item();

      &_type_inverted {
        @include __item();

        color: #333;
        background-color: #fff;
      }
    }
  }
}

出力します:

.menu {
  user-select: none;
}

.theme-dark .menu {
  color: #fff;
  background-color: #333;
}

.theme-dark .menu__item {
  height: 48px;
}

.theme-dark .menu__item_type_inverted {
  height: 48px;
  color: #333;
  background-color: #fff;
}

ミックスインのスコープを設定するということは、競合が発生することなく、異なるスコープで同じ名前の複数のミックスインを使用できることを意味します。

于 2016-09-21T20:12:57.477 に答える