我正在使用&:在mixin内的SASS @if块内选择 .
@mixin mixin-name {
@if (condition) {
.....
} else {
&:nth-of-type(...) {}
}
}
&:Nth-of-type是mixin中最外层的实际选择器 . 在我的代码中,我用这种方式:
aside {
@include mixin-name;
}
我期待CSS输出中的这个:
aside:nth-of-type() {}
相反,我明白了:
aside else:nth-of-type() {}
显然,SASS正在将 else 作为"parent"而不是旁边 . 旧的mixin在mixin中包含了旁边的元素,但我想让它更灵活,与任何选择器一起使用 .
我目前的解决方案是将选择器作为变量传递给mixin并以这种方式使用它:
#{$var} {
&:nth-of-type() {}
}
这可行,但似乎是一个错误, & 应该选择一段代码而不是实际的选择器 . 谁有更优雅的解决方案?
1 回答
使用
@else
. 你可以在这里查看完整的文档:SASS Docs基本上,SASS认为
else
是一个CSS关键字/标识符 . 它需要以@
为前缀 .即,您的代码将成为: