手机(屏幕)尺寸:指对角线的长度,用英寸表示
css像素:逻辑像素,也就是我们写代码时候的px,注意缩放会改变css像素大小
设备像素pt:又叫物理像素,不同的设备的物理像素大小也是不同的。
pt:指的是72分之一英寸。
ppi:像素密度,即每英寸(in)像素个数,常用于ui设计
ppi=屏幕分辨率的各方向的平方的和/屏幕尺寸。
以iphone6为例子,屏幕是1334*750,326ppi,屏幕4.7英寸
Math.sqrt(Math.pow(1334,2)+Math.pow(750,2)) / 4.7 ≈ 325
dpi:每英寸(in)像素点数,常用于平面印刷
dpr像素比:
像素比=物理像素/css像素
通过:var dpr=window.devicePixelRatio获取
在pc端:
dpr通常为1,即只需指定css为1,物理像素就为1px,因为屏幕足够大,一个css像素用一个物理像素来显示,完全可以
在移动端:
若dpr=2,意味着需要用2个物理像素填充一个css像素(面积上需要4个),因此一个css像素=dpr个物理像素。
移动设备大小是有限的,而且分辨率不低,甚至比pc端更高,也就是可以显示的物理像素更多,如果和pc端一样,一个css的px和物理像素一一对应,可以想象,显示的内容有多小
在高清屏中:
屏幕拥有的物理像素点数比非高清屏多4倍甚至更多,如果继续按照dpr=1,那么同一张图片在高清屏上面显示的区域面积会是非高清屏的1/4
故推出dpr=4等等,使用4个乃至更多物理像素来渲染1个逻辑像素,这样一来,,同样的CSS代码设置的尺寸相同
1px边框问题:
故在之上的条件下,1px可能屏幕硬是塞给你一条宽度为2—3个物理像素的线
单位
em:一个字符长度
in:英尺
分辨率:狭义的理解为屏幕的像素,例如1200*780,可以理解为水平方向有1200的像素点,垂直方向有780个像素点。分辨率高的显示屏可以显示更多细节,反之则粗糙。
设备独立像素(保证图像在不同设备上占比相同)
ios:pt
android:dp
独立像素和像素关系:
window.devicePixelRatio
获取物理设备的逻辑像素css
window.screen.width; 只可读取,不可改变
视口(viewport)
pc端:视口大小就是整个浏览器大小(包括浏览器的上栏目等)
document.doucumentElement.clientHeight