좋아, 그래서 내가 실수를 한 사실, 내가 실제로 필요로 무슨 일이 있었는지 다음과 같은 출력했기 때문에, 훨씬 앞서 생각하지 않았다 :
.small-1 { width: 8.33333%; }
.small-2 { width: 16.66667%; }
.small-3 { width: 25%; }
...
@media only screen and (min-width: 640px) {
/* line 43, ../scss/_grid.scss */
.medium-1 { width: 8.33333%; }
.medium-2 { width: 16.66667%; }
.medium-3 { width: 25%; }
...
}
@media only screen and (min-width: 1024px) {
.large-1 { width: 8.33333%; }
.large-2 { width: 16.66667%; }
.large-3 { width: 25%; }
...
}
그리고 그 축복하는 달성 다음 코드 :이 또한 다른 사람에게 도움이 될 수
$breakpoints: (small: 0, medium: 640px, large: 1024px);
$grid-columns: 12;
@each $key, $value in $breakpoints {
@if $value == 0 {
@for $i from 1 through $grid-columns {
.#{$key}-#{$i} { width: (100%/$grid-columns) * $i; };
}
} @else if $value != 0 {
@include breakpoint(#{$key}) {;
@for $i from 1 through $grid-columns {
.#{$key}-#{$i} { width: (100%/$grid-columns) * $i; };
};
};
}
}
희망)
편집 : @Ram 쿠마가 @include breakpoint(#{$key})
부분에 대해 약간의 호기심을 가지고 있기 때문에, 나는 믹스 인을 추가 해요 그 바로 아래에 코드가 있습니다. 더 나은 방법이나 단순한 방법이 있어야합니다. 그러나 이것이 내가 생각해 낼 수있는 것입니다. 간단한 해결책을 찾고 있다면 다음의 첫 번째 줄만 있으면됩니다.
@mixin breakpoint($point) {
// breakpoint(medium), breakpoint(large)...
@each $key, $value in $breakpoints {
@if $point == $key and not ($value == 0) {
@media only screen and (min-width: #{$value}) { @content; }
}
}
// breakpoint(small only), breakpoint(medium only), breakpoint(large only)...
$i: 1;
@each $key, $value in $breakpoints {
$bp-only: $key only;
$bp-keys: map-keys($breakpoints);
$bp-values: map-values($breakpoints);
@if $point == $bp-only and $value == 0 {
@media only screen and (max-width: #{nth($bp-values, $i + 1)}) { @content; }
}
@if $point == $bp-only and not ($value == 0) and not ($key == nth($bp-keys, -1)) {
@media only screen and (min-width: #{$value}) and (max-width: #{nth($bp-values, $i)}) { @content; }
}
@if $point == $bp-only and $key == nth($bp-keys, -1) {
@media only screen and (min-width: #{$value}) { @content; }
}
$i: $i + 1;
}
// breakpoint(medium down), breakpoint(large down)...
@each $key, $value in $breakpoints {
$bp-down: $key down;
@if $point == $bp-down and not ($value == 0) {
@media only screen and (max-width: #{$value}) { @content; }
}
}
}