@mixin 可能用于伪元素

dan*_*Mad 5 css sass

我需要在我正在从事的项目上支持伪元素的新旧声明。我想创建一个 SCSS @mixin,这样我就不必重复自己的事情了。

我想要实现以下目标:

宣言:

.selector {
  &#{$before} {
    content: '';
  }
}
Run Code Online (Sandbox Code Playgroud)

编译:

.selector:before { content: ''; }
.selector::before { content: ''; }
Run Code Online (Sandbox Code Playgroud)

所以我本质上需要@mixin和后面@extend的任何 css 属性。:before::before

我到处搜索,没有找到解决方案。他们的任何 Sass 巫师能够让我的梦想成为现实吗?

先感谢您

ESR*_*ESR 6

给你,伙计:

@mixin pseudo-element($element) {
  &:#{$element}, &::#{$element} {
    @content;
  }
}

// Usage:

.foo {
  @include pseudo-element('before') {
    content: '';
  }
}
Run Code Online (Sandbox Code Playgroud)

输出:

.foo:before, .foo::before {
  content: '';
}
Run Code Online (Sandbox Code Playgroud)

代码笔: https: //codepen.io/esr360/pen/VzVBpj