不是最后一个孩子mixin SASS

HGB*_*HGB 5 sass mixins

有可能把这个:

.redstripe p:not(last-child) {
  border-bottom:1px solid red;
}
Run Code Online (Sandbox Code Playgroud)

进入mixin,以便我可以将它应用于任何元素并为其分配子标记,如:

@mixin redstripe (this.$children):not(last-child) {
  border-bottom:1px solid red;
}
Run Code Online (Sandbox Code Playgroud)

然后申请:

div {
  @include redstripe(p);
}
Run Code Online (Sandbox Code Playgroud)

实现这个的正确方法是什么?

Oka*_*Oka 17

这是一个像你所描述的通用mixin.

DEMO

@mixin not-last-child($selector) {
  & #{$selector}:not(:last-child) {
    @content;
  }
}
Run Code Online (Sandbox Code Playgroud)

我们可以传递一个选择器字符串来使用.

SCSS:

.thing {
  @include not-last-child('p') {
    color: red;
  }
}
Run Code Online (Sandbox Code Playgroud)

CSS:

.thing p:not(:last-child) {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)

Sass文档