物理像素(设备像素)
物理像素也称为设备像素,指的是屏幕的物理像素,任何设备屏幕的物理像素的数量都是固定不变的,单位是pt(点)。如手机的分辨率,iPhone6分辨率是750x1334,即横向上有750个物理像素,750pt,纵向上有1334个物理像素,1334pt。
物理像素的值大小是固定的、绝对的。
CSS像素
CSS像素又叫设备独立像素、逻辑像素。是CSS中使用的一个抽象的概念,单位是px。
CSS像素值是相对的,并不是绝对的,css像素是相对于设备像素决定的。这句话是什么意思呢?请往下看。
一个CSS像素的大小不是固定的
1 |
|
这涉及到DPR像素的知识。
一般,在PC电脑设备上,一个CSS像素就对应一个设备像素,所以在PC端开发网页的时候,设计稿量出来的尺寸是多少,CSS样式就给多少像素。如下图所示👇
但是,当我把浏览器放大两倍的时候,CSS样式依旧是200x100的宽高,但是通过截图软件可以看到这时的div实际的物理像素是400x200了。即,随着浏览器屏幕放大两倍后,1个CSS像素对应了2个物理像素。
屏幕尺寸
指的是屏幕对角线的长度,单位为英寸。
1英寸(inch)=2.54厘米(cm)
屏幕尺寸 = 屏幕斜边的物理像素 / PPI
PPI 像素密度
像素密度(PPI)指的是 每英寸上像素(设备像素物理像素)的数量,和 屏幕尺寸一样,涉及到的都是物理像素
1、PPI的值越高,代表在一定尺寸的屏幕上像素数量越多,屏幕越清晰
2、它是一个定值,是一个固定的参数
4、PPI=屏幕斜边的物理像素/屏幕尺寸
5、同一尺寸下,PPI提高了一倍,那像素会提高4倍
如果ppi变为原来的2倍,那么单位面积内设备像素会变为原来的4倍,
如果ppi变为原来的4倍,那么单位面积内设备像素会变为原来的16倍,
如果ppi变为原来的8倍,那么单位面积内设备像素会变为原来的64倍,
如果ppi变为原来的n倍,那么单位面积内设备像素会变为原来的n^2倍。
但是同样的,ppi每变大为原来的n倍,物理像素会增加为原来的n^2倍,同时每个物理像素的大小会缩小为原来的1/(n^2)倍,这就导致了下图的问题,原本在普通屏(30x30)正常显示的图片(分别率30x30)在高清屏(60x60)下缩小了👇
这时,如果把图片的宽高样式变为原来的两倍大小,图片就可以铺满整个网格了,但是这时候出现了另一个新问题——图片模糊了。怎么解决问题呢?最好的办法就是将图片一开始就做成高分别率的60x60,这样一来,当它在普通屏(30x30)显示的时候会自动缩小,缩小的图片倒更清晰了;当它在高清屏(60x60)显示的时候就正好铺满。
DPR 像素比
DPR=物理像素/css像素,即一个CSS像素对应多少个物理像素。
可以通过window.devicePixelRatio
获取
1 | iphone6 |