简单的答案是:你不能,因为Sass不能(或不会)为它组成 Select 器.你不能在媒体查询的内部扩展媒体查询之外的内容.如果它只是复制一份,而不是试图组合 Select 器,那当然是件好事.但事实并非如此,所以你不能.
Use a mixin
如果您打算在媒体查询内外重用代码块,但仍希望它能够扩展它,那么请编写一个mixin和一个extend类:
@mixin foo {
// do stuff
}
%foo {
@include foo;
}
// usage
.foo {
@extend %foo;
}
@media (min-width: 30em) {
.bar {
@include foo;
}
}
Extend the selector within a media query from the outside
这不会真正帮助您的用例,但它是另一种 Select :
%foo {
@media (min-width: 20em) {
color: red;
}
}
@media (min-width: 30em) {
%bar {
background: yellow;
}
}
// usage
.foo {
@extend %foo;
}
.bar {
@extend %bar;
}
Wait until Sass lifts this restriction (or patch it yourself)
关于这个问题有许多正在进行的讨论(除非您有什么有意义的东西要添加,否则请不要为这些主题做贡献:维护人员已经意识到用户需要这个功能,这只是一个如何实现它以及语法应该是什么的问题).