我可以使用伪元素作为 scss mixin 的参数吗?
Can I use psuedo elements as an argument to a scss mixin?
我有一个 mixin,我引用 "element" 作为参数。
@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 不开心:-(
你只需要将你的参数放在一个字符串中。
@mixin themeParent($child) {
&--blue #{$child} {
color: blue;
}
}
.cool {
@include themeParent('a:hover');
@include themeParent('&:first-child');
}
我有一个 mixin,我引用 "element" 作为参数。
@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 不开心:-(
你只需要将你的参数放在一个字符串中。
@mixin themeParent($child) {
&--blue #{$child} {
color: blue;
}
}
.cool {
@include themeParent('a:hover');
@include themeParent('&:first-child');
}