scss进行媒体查询做到响应式布局

132 阅读1分钟
$breakpoints: (

  sm: 0px,

  md: 768px,

  la: 1200px,

);



@mixin media-query($size) {
// map-get Sass 中的一个函数,用于从一个 Map(映射)中获取指定键对应的值
  $min-width: map-get($breakpoints, $size);

  $max-width: null;



  @if $size =="sm" {

    $max-width: map-get($breakpoints, "md");

  }



  @else if $size =="md" {

    $max-width: map-get($breakpoints, "la");

  }



  @if $max-width ==null {

    @media screen and (min-width: #{$min-width}) {

      @content;

    }

  }



  @else if $min-width ==0 {

    @media screen and (max-width: #{$max-width}) {

      @content;

    }

  }



  @else {

    @media screen and (min-width: #{$min-width}) and (max-width: #{$max-width - 1}) {

      @content;

    }

  }

}

使用

.class{
    //除了sm和md尺寸,其他的都使用这里的样式
    @include media-query("sm") {
    //中间写多个样式
          padding: 3px 35px;
        }
    @include media-query("md") {
          padding: 4px 35px;
        }
}