如何使用变量创建sass媒体查询?

时间:2014-01-03 00:04:27

标签: sass

编写此scss代码并避免重复是否有一种狡猾的方法?

$gutter: 0.5em;
$width-l: 62em;
$width-xl: 98em;
$columns: 4;

.bloc { margin-right:$gutter; }
.content-bloc { margin-right: -$gutter; }

重复的部分:

@media (min-width: $width-l) {
    body { width: $width-l; }

    $bloc-width: ($width-l + $gutter) / $columns;

    .bloc-1 { width: $bloc-width - $gutter; }
    .bloc-2 { width: $bloc-width * 2 - $gutter; }
    .bloc-3 { width: $bloc-width * 3 - $gutter; }
    .bloc-4 { width: $bloc-width * 4 - $gutter; }
}
@media (min-width: $width-xl) {
    body { width: $width-xl; }

    $bloc-width: ($width-xl + $gutter) / $columns;

    .bloc-1 { width: $bloc-width - $gutter; }
    .bloc-2 { width: $bloc-width * 2 - $gutter; }
    .bloc-3 { width: $bloc-width * 3 - $gutter; }
    .bloc-4 { width: $bloc-width * 4 - $gutter; }
}

1 个答案:

答案 0 :(得分:0)

我想出了这个:

@each $width in $width-l, $width-xl { 
    @media (min-width: $width) {
        body {
            width: $width;
        }

        $bloc-width: ($width + $gutter) / $columns;

        @for $i from 1 through 4 {
            .bloc-#{$i} {
                width: ($bloc-width * $i) - $gutter;
            }
        }
}
}