У меня есть _display.scss
частичное.
Содержит @mixin
и классы , связанные с отображением CSS свойство.
_display.s css
@mixin d-block{
display: block;
}
@mixin d-none{
display: none;
}
.d-block{
@include d-block();
}
.d-none{
@include d-none();
}
Я разработчик @mixin
generate-response-content , который принимает @content
класса и генерирует разные @ медиа-запрос для каждой точки останова.
Таким образом:
.d-block{
@include generate-responsive-content() {
@include d-block();
}
}
.d-none{
@include generate-responsive-content() {
@include d-none();
}
}
// Generate all breakpoints from content
@mixin generate-responsive-content() {
// Responsive styles
// Loop over each size
@each $breakName, $width in $breakpoints {
// Check breakpoint
@if ($breakName != "") {
$breakName: '-' + $breakName;
@media (min-width: $width) {
&#{$breakName} {
@content
}
}
} @else {
@content;
}
}
}
например. сгенерированные классы: .d-block
, .d-block-xs
, .d-block-sm
...
Но таким образом я не могу переопределить классы .d-none
классами .d-block
для каждой точки останова, потому что они имеют были сгенерированы ранее и перезаписаны классами .d-none
.
У меня также есть класс с тем же именем, но без варианта точки останова, например d-none-lg
, d-block-lg
, они перезаписывают все остальные.
Проверьте это CodePen . Здесь d-none
варианты перезаписывают каждый класс d-block
.
Как я могу это решить?