这是关于移动网络的每一篇文章都提到的,但我无处可以找到这个属性究竟是什么衡量的解释.
任何人都可以详细说明这样的查询是什么?
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (min--moz-device-pixel-ratio: 1.5),
only screen and (-o-device-pixel-ratio: 3/2),
only screen and (min-device-pixel-ratio: 1.5) {
//high resolution images go here
}
Run Code Online (Sandbox Code Playgroud)
And*_*lad 149
器件像素比是物理像素和逻辑像素之间的比率.例如,iPhone 4和iPhone 4S报告设备像素比为2,因为物理线性分辨率是逻辑线性分辨率的两倍.
公式是:
哪里:
是物理线性分辨率
和:
是逻辑线性分辨率
其他设备报告不同的设备像素比率,包括非整数像素比率.例如,诺基亚Lumia 1020报告1.6667,Samsumg Galaxy S4报告3,Apple iPhone 6 Plus报告2.46 (来源:dpilove).但这不会改变原则上的任何内容,因为您永远不应该为任何一个特定设备进行设计.
CSS的"像素"甚至没有定义为"一些屏幕上的一个图像元素",而是作为一个非线性角度测量的 视角,大约是
一臂之力的一英寸.来源:CSS绝对长度
这对于网页设计有很多影响,例如准备高清图像资源并以不同的设备像素比率仔细应用不同的图像.您不希望强制低端设备下载非常高分辨率的图像,只能在本地缩小图像.您也不希望高端设备升级低分辨率图像以获得模糊的用户体验.
如果您遇到位图图像,为了适应许多不同的设备像素比率,您应该使用CSS媒体查询为不同的设备组提供不同的资源集.将此与漂亮的技巧相结合background-size: cover
或明确设置background-size
为百分比值.
#element { background-image: url('lores.png'); }
@media only screen and (min-device-pixel-ratio: 2) {
#element { background-image: url('hires.png'); }
}
@media only screen and (min-device-pixel-ratio: 3) {
#element { background-image: url('superhires.png'); }
}
Run Code Online (Sandbox Code Playgroud)
这样,每种设备类型仅加载正确的图像资源.还要记住,px
CSS 中的单元始终在逻辑像素上运行.
随着越来越多的设备类型出现,为它们提供足够的位图资源变得更加棘手.在CSS中,媒体查询是目前唯一的方式,在HTML5中,picture元素允许您为不同的媒体查询使用不同的源,但是支持仍然不是100%,因为大多数Web开发人员仍然需要支持IE11一段时间(来源:caniuse).
如果您需要清晰的图像,图标,线条艺术,非照片的设计元素,您需要开始考虑SVG,它可以精确地扩展到所有分辨率.
Jak*_*son 146
在Web开发领域,设备像素比(也称为CSS Pixel Ratio)决定了CSS如何解释设备的屏幕分辨率.
浏览器的CSS通过以下公式计算设备的逻辑(或解释)分辨率:
例如:
Apple iPhone 6s
在查看网页时,CSS会认为该设备具有375x667分辨率的屏幕,而媒体查询将响应,就像屏幕是375x667一样.但是屏幕上渲染的元素将是实际375x667屏幕的两倍,因为物理屏幕中的物理像素数量是其两倍.
其他一些例子:
三星Galaxy S4
iPhone 5S
创建CSS像素比率的原因是因为随着手机屏幕获得更高的分辨率,如果每个设备仍然具有1的CSS像素比率,那么网页将变得太小而无法看到.
典型的全屏桌面显示器大约是24英寸,分辨率为1920x1080.想象一下,如果显示器缩小到大约5英寸,但具有相同的分辨率.在屏幕上查看内容是不可能的,因为它们会非常小.但制造商现在一直推出1920x1080分辨率的手机屏幕.
因此,设备像素比率是由手机制造商发明的,因此它们可以继续提高手机屏幕的分辨率,清晰度和质量,而不会使屏幕上的元素太小而无法看到或读取.
这是一个工具,它还可以告诉您当前设备的像素密度:
http://bjango.com/articles/min-device-pixel-ratio/
https://developer.mozilla.org/en/CSS/Media_queries#-moz-device-pixel-ratio
-moz-device-pixel-ratio
给出每个CSS像素的设备像素数.
这几乎是自我解释的.该数字描述了使用多少"真实"像素(屏幕的物理像素)来显示一个"虚拟"像素(CSS中设置的大小)的比率.
Boris Smus的文章针对可变像素密度的高DPI图像具有更精确的设备像素比定义:每个CSS像素的设备像素数量是一个很好的近似值,但不是整个故事.
请注意,您可以获取设备使用的DPR window.devicePixelRatio
.