Как создать псевдонимы Sass mixin с поддержкой блоков контента?
Как определить несколько имен для одного и того же миксина с поддержкой блоков контента?
Определение
@mixin desktop-breakpoint {
@media only screen and (min-width: 769px) {
@content;
}
}
@mixin large-breakpoint {
@include desktop-breakpoint;
}
использование
.my-class {
font-size: small;
@include desktop-breakpoint {
font-size: big;
}
}
.my-other-class {
color: red;
@include large-breakpoint {
color: blue;
}
}
Сообщение об ошибке
Mixin "большая точка останова" не принимает блок контента.
1 ответ
Решение
Вы не проходите мимо @content
когда используешь @include desktop-breakpoint
в вашем large-breakpoint
Mixin. Это исправит вашу ошибку компиляции:
@mixin large-breakpoint {
// Remember to pass content received by mixin to @include
@include desktop-breakpoint {
@content;
}
}
Тогда ваш CSS будет скомпилирован правильно, как и предполагалось:
.my-class {
font-size: small;
}
@media only screen and (min-width: 769px) {
.my-class {
font-size: big;
}
}
.my-other-class {
color: red;
}
@media only screen and (min-width: 769px) {
.my-other-class {
color: blue;
}
}
См. Пример проверки концепции на основе вашего измененного кода: https://www.sassmeister.com/gist/3109af060293eed0b89a22c27fa20527