【问题标题】:Do retina devices NEED their own media queries?Retina 设备需要自己的媒体查询吗?
【发布时间】:2016-11-30 06:39:18
【问题描述】:

我有几个媒体查询在 Retina 设备上被忽略 - 例如,iPhone 6 Plus。 iPhone 6 Plus 的屏幕最小设备宽度为 414 像素。使用以下媒体查询,我希望手机会使 customClass div 具有 100% 的宽度。但是使用这个类的 div 仍然是 33.33333%。 (我已经为示例简化了下面的代码,删除了浮点数等)

例如,我有以下 CSS:

.customClass {
   width: 33.33333%;
}

@media screen and (max-width: 800px) {
    .customClass {
      width: 100%;
    }
}

顺便说一句,我的标题中有这个:

<meta name="viewport" content="width=device-width, initial-scale=1"> 

我认为使用上面的视口元标记,它会导致设备宽度(414px)被用作宽度,所以它应该使用 .customClass 上的 100% 宽度。

似乎更高的像素密度导致它忽略了 800px 宽度查询,但我不知道为什么。

经过大量阅读和研究,我发现如果您使用 @2x 图像(例如,针对所有视网膜屏幕而不是像我这样的网站布局),您只想使用视网膜媒体查询我在上面做)。所以我认为我不需要像 only screen and (min-device-pixel-ratio: 2) 这样的视网膜媒体查询来为 iPhone 6 Plus 提供 100% 的宽度。

我试图避免特定于设备的媒体查询like this,因为要担心的设备太多,这似乎不切实际。 (我也尝试了其中一些,它们确实可以针对特定设备(例如 iPhone 6 Plus),但我更希望一举针对任何低于 800 像素的设备。)

所以快速总结一下,如果我的示例代码是正确的,并且标题问题的答案是简单的“否”,那么在针对视网膜设备时我是否还缺少其他东西?可能是一个更大的全站问题? (我不是要求你找到这个问题,如果是其他问题,我会更深入地挖掘......但它是一个巨大的网站;))

谢谢!

【问题讨论】:

  • 您的元标记看起来不错,您的 CSS 看起来也不错 - 您无需以任何方式修改该 MQ 即可使其在视网膜手机或 iPhone 6 Plus 上运行。在移动设备模拟器上选择手机时,您能否在 Chrome 的开发者工具中重现此问题?我怀疑 CSS 存在另一个问题,调试会有所帮助。

标签: css iphone responsive retina


【解决方案1】:

没有。不需要针对特定​​于视网膜的媒体查询。

在现代世界中,您会使用可以无限缩放而不会损失质量的矢量或字体图标。关于照片,为视网膜显示器添加不同的照片是没有意义的。

您上面的代码是正确的。请记住,渲染的分辨率是实际的设备分辨率/像素密度。这意味着 iphone 为 750x1334px,像素密度为 2 (@2x),因此实际渲染的分辨率为 375x667px。

【讨论】:

    猜你喜欢
    • 2013-03-05
    • 2013-06-22
    • 1970-01-01
    • 2012-07-05
    • 2017-05-14
    • 2013-03-12
    • 2014-12-18
    • 2021-05-02
    • 1970-01-01
    相关资源
    最近更新 更多