Die einfache Antwort lautet: Sie können nicht, weil Sass den Selektor dafür nicht komponieren kann (oder will). Sie können sich nicht innerhalb einer Medienabfrage befinden und etwas erweitern, das außerhalb einer Medienabfrage liegt. Es wäre sicherlich schön, wenn es einfach eine Kopie davon nehmen würde, anstatt zu versuchen, die Selektoren zusammenzustellen. Aber es ist nicht so, dass du es nicht kannst.
Verwenden Sie ein Mixin
Wenn Sie einen Fall haben, in dem Sie einen Codeblock innerhalb und außerhalb von Medienabfragen wiederverwenden und dennoch möchten, dass er ihn erweitern kann, schreiben Sie sowohl eine Mixin- als auch eine Extend-Klasse:
@mixin foo {
// do stuff
}
%foo {
@include foo;
}
// usage
.foo {
@extend %foo;
}
@media (min-width: 30em) {
.bar {
@include foo;
}
}
Erweitern Sie den Selektor innerhalb einer Medienabfrage von außen
Dies wird Ihrem Anwendungsfall nicht wirklich helfen, aber es ist eine weitere Option:
%foo {
@media (min-width: 20em) {
color: red;
}
}
@media (min-width: 30em) {
%bar {
background: yellow;
}
}
// usage
.foo {
@extend %foo;
}
.bar {
@extend %bar;
}
Warten Sie, bis Sass diese Einschränkung aufhebt (oder flicken Sie sie selbst).
Es gibt eine Reihe von laufenden Diskussionen zu diesem Thema (bitte tragen Sie nicht zu diesen Threads bei, es sei denn, Sie haben etwas Sinnvolles hinzuzufügen: Die Betreuer sind sich bereits bewusst, dass Benutzer diese Funktionalität wünschen, es ist nur eine Frage der Implementierung und der Funktionsweise Syntax sollte sein).