在变量中保存媒体查询

laj*_*lev 4 variables sass media-queries

是否可以将媒体查询保存为变量?

这不起作用:

$max: @media (max-width: 980px) and (min-width: 768px);
Run Code Online (Sandbox Code Playgroud)

我不是在寻找如何保存max-width和min-width,而是整个字符串.

Dan*_*her 7

使用这样的东西

  @mixin respondTo($media) {
    @if $media == smallScreen {
      @media only screen and (max-width: $screenSmall - 1) { @content; }
    } @else if $media == mediumScreen {
      @media only screen and (max-width: $screenMedium) and (min-width: $screenSmall) { @content; }
    } @else if $media == largeScreen {
      @media only screen and (min-width: $screenXlarge) { @content; }
    }
  }
Run Code Online (Sandbox Code Playgroud)

然后你可以做类似以下的事情:

.products {
  @include respondTo(smallScreen) {
    width: 300px;
  }

  @include respondTo(mediumScreen) {
    width: 700px;
  }
}
Run Code Online (Sandbox Code Playgroud)


cim*_*non 5

从 Sass 3.2 开始,您可以将媒体查询存储在如下变量中:

$bp-small: "(min-width: 30em)";

@media #{$bp-small} {
    .foo {
        color: red;
    }
}
Run Code Online (Sandbox Code Playgroud)