据我所知,它是“抽象”分辨率与设备物理分辨率之间的比率。所以我测试它(在HTC Desire上),物理分辨率是480x800
,它被记录的比例是1.5
。我投入了一些元素,但它仍然需要480px
宽度填充视口,我的天真认为它需要'320px'?
答案 0 :(得分:4)
来自http://www.quirksmode.org/blog/archives/2012/07/more_about_devi.html,作者讨论了移动设备中devicePixelRatio的差异:
在iOS Retina设备上,screen.width给出了逢低的宽度。所以两个 视网膜和非视网膜iPad以纵向模式报告768。三个 Android设备,screen.width给出物理像素的宽度; 480, 分别为720和800。设备上的所有浏览器都使用相同的 值。 (想象一下,如果同一设备上的某些浏览器使用了dips和 其他物理像素!)
这使得作者得出以下结论:
- 在iOS设备上,将screenPixelRatio乘以screen.width以获取物理像素数。
- 在Android和Windows Phone设备上,将screen.width除以screenPixelRatio以获取逢低计数。
在您的情况下,重要的是屏幕宽度,简单明了。 DIP的计算是设备要处理的事情,而不是您作为开发人员。如果设备想要补偿不同的像素比率,它将为您提供DIP宽度并给出比率。如果感觉页面应该以原始未修改的像素分辨率显示,那么它将为您提供宽度。该帖子的作者也得出以下结论,我感到很有意思:
Apple增加了像素,因为它想让显示更清晰,更顺畅,而Android供应商增加像素,将更多东西塞进屏幕。
无论如何,请使用浏览器提供的宽度并将其留给设备进行补偿。