Edit为我解决这个问题的是双重(“或”操作)媒体查询,用于最大设备宽度或最大宽度。这就像 David Rönnqvist 的第一个建议,但它只是把max-width, max-device-width
两者都在对我有用的媒体查询中。
@media screen and (max-device-width:640px), screen and (max-width:640px) {
/* styles here */
}
BBTony,我希望这对你有用。
我保留下面的内容是因为它比我在其他地方找到的问题更完整的描述。我非常不喜欢我的第一个解决方案(线下),以至于我重新研究了第一千次 - 感谢这个帖子这给了我上面的解决方案,没有荒谬的!重要。
编辑:这也有效,但非常不优雅:将“!important”放在媒体查询条件 CSS 的每一行上。
我不愿意提议作为一个answer,但经过三天的疯狂研究后,这是对我有用的第一件事。
问题的完整描述:我有与 BBTony 类似的症状。我有视口标签(并且按照建议将其放在样式表上方)。
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
我的媒体查询旨在捕获任何小型设备,但运行 iOS 5.1 的 iPhone 3gs 忽略了它,但运行 iOS 6 的 iPhone 4s 正确地接收了相同的媒体查询。
@media only screen and (max-device-width:640px) {
/* many styles here */
}
非常奇怪的是,虽然旧版 iPhone 忽略了媒体查询中的大多数声明,但其中一些声明were受到尊重。然而,正如预期的那样,较新的 iPhone 4s 尊重媒体查询中的所有 CSS。在 Safari 桌面上,媒体查询都运行良好,在两个断点处(有 2 个)。
阅读完后,我通过几个不同的检查器检查了我的 CSShereCSS 错误可能会导致移动浏览器忽略媒体查询。在确定我的 CSS 兼容之后,我把!媒体查询中每一行 CSS 后面的重要声明- 比如 80-100!重要的。
Presto.
我无法告诉你这让我有多生气,这甚至起作用了,我很好奇为什么旧的 iphone 在这种情况下只尊重 !important 的条件。