0

我有一个mixin,我引用一个“元素”作为参数。

@mixin themeParent ($child) {
    &--blue #{$child} {
        color: getColour("theme", "bluehighlight");
    }

    &--green #{$child}  {
        color: getColour("theme", "greenhighlight");
    }

    &--purple #{$child}  {
        color: getColour("theme", "purplehighlight");
    }

    &--gossamer #{$child}  {
        color: getColour("theme", "gossamerhighlight");
    }

    &--black #{$child}  {
        color: getColour("theme", "black");
    }
}

如果我引用一个a或一个p例如,这很好用

HTML

<div class="div--blue">
    <a>blue link</a>
</div>

SCSS

div {
    @include themeParent(a);
}

但我也想将mixin用于伪元素,例如。

div {
    @include themeParent(a:hover);
}

或者

 div {
        @include themeParent(>a:hover);
    }


 div {
        @include themeParent(&:first-child);
    }

这可能吗?为什么我正在做的事情让 SCSS 不开心:-(

4

1 回答 1

1

你只需要把你的论点放在一个字符串中。

演示

@mixin themeParent($child) {
    &--blue #{$child} {
        color: blue;
    }
}

.cool {
  @include themeParent('a:hover');
  @include themeParent('&:first-child');
}
于 2018-11-23T04:16:35.327 回答