媒体查询 - 介于两个宽度之间

rus*_*shi 123 css media-queries

我正在尝试使用CSS3媒体查询来创建一个只在宽度大于400px且小于900px时出现的类.我知道这可能非常简单,我遗漏了一些明显的东西,但我无法弄明白.我想出的是以下代码,感谢任何帮助.

@media (max-width:400px) and (min-width:900px) {
    .class {
        display: none;
    }
}
Run Code Online (Sandbox Code Playgroud)

Sam*_*son 237

您需要切换值:

/* No greater than 900px, no less than 400px */
@media (max-width:900px) and (min-width:400px) {
    .foo {
        display:none;
    }
}?
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/xf6gA/(使用背景颜色,因此更容易确认)

  • “ max-width”和“ min-width”应该颠倒。这种方式更易读 (2认同)
  • 澄清一下,“@media (max-width:X2) and (min-width:X1)”与“X1 <= screen_size AND screen_size <= X2”相同。另外,最好先写下“min-width”值“@media (min-width:X1) and (max-width:X2)”,因为如果提供了屏幕尺寸列表,则更容易阅读(即,`@media (最小宽度:X1) 和 (最大宽度:X2) { ... } @media (最小宽度:X3) 和 (最大宽度:X4) { ... } ... `) (2认同)

Wal*_*uss 26

@Jonathan Sampson我认为如果使用多个@media,你的解决方案是错误的.

你应该使用(最小宽度):

@media screen and (min-width:400px) and (max-width:900px){
   ...
}
Run Code Online (Sandbox Code Playgroud)

  • 接受的答案没有任何错误,但我认为使用min-width到max-width是一个更清晰,可读的约定. (8认同)

小智 6

只是想在.scss这里留下我的例子,我认为它是一种最佳实践,尤其是我认为如果您进行自定义,最好只设置一次宽度!到处应用它并不聪明,你会成倍地增加人为因素。

我期待您的反馈!

// Set your parameters
$widthSmall: 768px;
$widthMedium: 992px;

// Prepare your "function"
@mixin in-between {
     @media (min-width:$widthSmall) and (max-width:$widthMedium) {
        @content;
     }
}


// Apply your "function"
main {
   @include in-between {
      //Do something between two media queries
      padding-bottom: 20px;
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果你在 mixin 中使用了参数,它可能是一个“函数”...... (2认同)