在进行媒体查询的编写的时候,我们可以利用scss与与编译器,通过@include混入的方式对代码进行简化,从而大大提高了代码的可维护性,也减少了代码的编写量,废话不多说,直接上代码
// 定义设备数值
$breakpoints: ('phone': (320px, 480px),'ipad': (481px, 768px),'notebook': (769px, 1024px),'pc': 1205px
);// sass 混合
@mixin respnseTo($breakname) {// map-get:从对应键值对中获取数据,$bp: map-get($breakpoints, $breakname);// 判断 $bp 是 list,还是单个值 @if type-of($bp) == 'list' {// 从 list 中获取第一项和第二项数据$min: nth($bp, 1);$max: nth($bp, 2);@media (min-width: $min) and (max-width: $max) {// @content:混入其他的数据@content;}} @else {@media (min-width: $bp) {@content;}};
}.container {width: 100%;@include respnseTo('phone') {height: 50px;}@include respnseTo('ipad') {height: 60px;}
}
最后编译结果:
@media (min-width: 320px) and (max-width: 480px) {.header {height: 50px;}
}@media (min-width: 481px) and (max-width: 768px) {.header {height: 60px;}
}