Проблема, с которой вы сталкиваетесь - это проблема, связанная с областью действия.Вы определяете переменную breakpoints
внутри тега body
, поэтому вы не можете правильно переписать определение breakpoints
по умолчанию из используемых вами sass
миксинов.
Я также преобразовал ваш$breakpoint-colors
на карту, так что вы можете легко сопоставить соответствующие значения точек останова.
Попробуйте следующее, скомпилируйте точно так, как вы хотите:
$breakpoints: (
'sm': 540px,
'md': 768px,
'lg': 1025px,
'xl': 1360px
);
$breakpoint-colors: (
'sm': red,
'md': green,
'lg': yellow,
'xl': blue
);
$containers: (
'sm': 520px,
'md': 740px,
'lg': 1024px,
'xl': 1320px,
);
body {
@each $name, $value in $breakpoints {
$container: map_get($containers, $name);
$background: map_get($breakpoint-colors, $name);
@include media('>=#{$name}') {
&:after {
content: "Media: #{$name} >= #{$value} | Container: #{$container}";
background: $background;
}
}
}
}
Это скомпилируется в:
@media (min-width: 540px) {
body:after {
content: "Media: sm >= 540px | Container: 520px";
background: red;
}
}
@media (min-width: 768px) {
body:after {
content: "Media: md >= 768px | Container: 740px";
background: green;
}
}
@media (min-width: 1025px) {
body:after {
content: "Media: lg >= 1025px | Container: 1024px";
background: yellow;
}
}
@media (min-width: 1360px) {
body:after {
content: "Media: xl >= 1360px | Container: 1320px";
background: blue;
}
}