我需要在我正在从事的项目上支持伪元素的新旧声明。我想创建一个 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 巫师能够让我的梦想成为现实吗?
先感谢您
给你,伙计:
@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