【问题标题】:Media Queries doesn't work when there is a lot of them当有很多媒体查询时,它们不起作用
【发布时间】:2014-05-10 12:57:08
【问题描述】:

当我编写媒体并检查后 - 它有效!但是当我写了 5-6 个媒体查询并且在我检查它们之后,它们不起作用!

我尝试下一个代码:

@media screen and (max-width: 1280px) and (max-height: 1024px) {...}

@media screen and (max-width: 1366px) and (max-height: 768px) {...}

@media screen and (max-width: 1400px) and (max-height: 1050px) {...}

@media screen and (max-width: 1440px) and (max-height: 900px) {...}

在这里,我在 StackOverflow 中看到了类似我的帖子,其中包含代码:

@media screen and (max-width: 1920px), screen and (max-height: 1080px) {....}

但它也不起作用。有什么问题?

更新

我在 IE8 上使用 JS 插件 respond.js 和 css3-mediaqueries.js

【问题讨论】:

  • 任何浏览器信息?
  • 不要忘记这个元标记<meta name="viewport" content="width=device-width, initial-scale=1.0">
  • 猜测重叠的规则...我会试试codepen
  • @Samoth 所有浏览器。我有这个元数据。当我只有 1 个查询时 - 它有效。但多个 - 没有!
  • 我有一个类似的工作 - codepen.io/elliz/pen/lynEt - 但目前只使用两个......添加更多......

标签: css media-queries


【解决方案1】:

我有这个工作......虽然获得每个触发器的确切窗口是棘手的。


编辑: 媒体查询的顺序很重要——当你有重叠的高度和宽度时,你将陷入痛苦的世界。如果您颠倒查询的顺序,您将获得更多的工作。

记住最后匹配的规则将获胜。

如果您的盒子相互放在一起,请正确排序,您会没事的

如果您有重叠的框,则会有一些区域无法按您的意愿定位。


您最好先使用移动设备并在宽度和高度上使用 MIN 而不是 MAX。此外,您更擅长根据内容选择断点,而不是根据任意屏幕分辨率选择 - 因为那里有太多的断点,您永远无法全部获得。

http://codepen.io/elliz/pen/lynEt

<div class="a">
  Test<br>
  width = <span class="w">resize me</span><br>
  height = <span class="h">resize me</span>

  <p>Breakpoints:</p>
  <ul>
    <li>500w 500h - red (go to 499w, 499h to see)</li>
    <li>600w 400h - green (go to 599w, 399h to see)</li>
    <li>700w 550h - gold (go large to see)</li>
  </ul>
</div>

.a {
  font-family: sans-serif;
  padding:10px 20px;
  font-weight: bold;
  background-color: cornflowerblue;
}

@media screen and (max-width: 700px) and (max-height: 550px) {
  .a {background: goldenrod;}  
}

@media screen and (max-width: 600px) and (max-height: 400px) {
  .a {background: green;}  
}

@media screen and (max-width: 500px) and (max-height: 500px) {
  .a {background: red;}  
}

// requires jQuery
$(window).resize(function (){
  showsizes();
});

$(window).ready(function (){
  showsizes();
});


function showsizes(){
    var w = $(window);
  $(".w").text(w.width());
  $(".h").text(w.height());
}

【讨论】:

  • 我在 IE8 中使用 css3-mediaqueries.js 工作。它不起作用
  • 为什么不使用 respond.js? github.com/scottjehl/Respond 。我正在使用最新的 chrome 进行测试。改用respond.js 试试……但您需要更改查询的顺序:首先是最大宽度。但由于您有重叠的大小框,您不会让所有事情都按您的意愿触发。
  • 关键问题 - 颠倒你的@media 声明的顺序:1440 第一,1280 最后
  • 你知道我的问题是什么吗?当我使用许多宽度相同但高度不同的媒体语句时,查询麻烦。例如:media screen and (max-width: 1280px), screen and and (max-height: 800px) {height: 50px;} media screen and (max-width: 1280px), screen and and (max-height: 960px ) {height: 100px;} media screen and (max-width: 1280px), screen and (max-height: 900px) {height: 150px;} 800的屏幕高度需要150px而不是50px
  • 在 codepen.com 或类似的代码网站上发布一个示例供我们查看。
猜你喜欢
  • 2021-03-02
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 2013-02-28
  • 2014-02-21
相关资源
最近更新 更多