Prosta odpowiedź brzmi: nie możesz, ponieważ Sass nie może (lub nie chce) skomponować dla niego selektora. Nie możesz znajdować się wewnątrz zapytania o media i rozszerzać czegoś, co jest poza zapytaniem o media. Z pewnością byłoby miło, gdyby po prostu skopiował to, zamiast próbować skomponować selektory. Ale tak nie jest, więc nie możesz.
Użyj miksera
Jeśli masz przypadek, w którym zamierzasz ponownie wykorzystać blok kodu wewnątrz i na zewnątrz zapytań o media i nadal chcesz, aby mógł go rozszerzyć, napisz zarówno klasę mixin, jak i rozszerzoną:
@mixin foo {
}
%foo {
@include foo;
}
.foo {
@extend %foo;
}
@media (min-width: 30em) {
.bar {
@include foo;
}
}
Rozszerz selektor w zapytaniu o media z zewnątrz
To naprawdę nie pomoże w przypadku użycia, ale jest to inna opcja:
%foo {
@media (min-width: 20em) {
color: red;
}
}
@media (min-width: 30em) {
%bar {
background: yellow;
}
}
.foo {
@extend %foo;
}
.bar {
@extend %bar;
}
Poczekaj, aż Sass zniesie to ograniczenie (lub załataj je samodzielnie)
Trwa wiele dyskusji dotyczących tego problemu (proszę nie wnosić udziału w tych wątkach, chyba że masz coś sensownego do dodania: opiekunowie są już świadomi, że użytkownicy chcą tej funkcji, to tylko kwestia tego, jak ją wdrożyć i co składnia powinna być).