- 英寸: 屏幕的对边长度
- 像素: 将图片放到最大所看到的一个个小方格
- 分辨率: 屏幕1英寸所包含的像素点
- 物理分辨率: 屏幕实际的1英寸所包含的像素点,(如经常看到电脑标的2.5k等等)
在浏览console中输入:
window.screen.width*window.devicePixelRatio
- 逻辑分辨率: 屏幕逻辑上的1英寸所包含的像素点(在开发中常用的,如css)
在浏览console中输入:
window.screen.width
- 设备像素比(Device Pixel Ratio, DPR):一个设备的物理像素与逻辑像素之比。
关于物理分辨率与逻辑分辨率的区别,引用知乎上的一段有趣回答
我们以mac的发展史来说明什么是物理分辨率,以及为什么需要衍生出逻辑分辨率。我们的主人公是乔帮主和比尔盖茨。此时乔帮主面前有一台mac,屏幕的分辨率是1280720,这就是物理分辨率。乔帮主对比尔盖茨说,给我的mac开发一个word软件吧。盖茨说OK,于是写了一个软件,这个软件显示的时候长度是1280像素,宽度是720像素,正好能够盖满整个mac屏幕。乔帮主看了之后很满意。有一天,乔帮主看自己的mac屏幕觉得很粗糙,一点都不清晰锐利。于是聪明的乔帮主想到,同样是15寸的屏幕,我把像素点翻倍,不就可以更清晰了吗?于是他把mac的物理分辨率改成了25601440的分辨率,相当于每个像素点的尺寸减少了4倍,这下再也看不出颗粒感了,乔帮主很满意。但是,当乔帮主打开盖茨给他写的word的时候,傻眼了,原本全屏的word现在只占屏幕的四分之一,而且文字非常的小。乔帮主打电话给盖茨说,你的软件怎么出问题了?盖茨回答说,我开发的时候你的mac分辨率就是1280720,你自己改了硬件尺寸怪我咯,我很忙没空给你改软件代码,你就凑合着用吧。乔帮主稍作思考,马上想出了一个非常聪明的主意!他在软件和硬件之间的系统层加了一层逻辑分辨率。虽然屏幕横向有2560个像素点,但是告诉软件我只有1280个像素点!当word的宽度要占1280个像素的时候,实际上已经占了2560个像素。 于是我们的word又占满屏幕了!于是乔帮主把这个机智的想法命名为逻辑分辨率,不管我显示器的硬件有多少个像素点,我只会告诉软件我的逻辑分辨率,这样软件的代码就不用修改也能在不同的屏幕上显示效果一致。在多年后,imac的物理分辨率已经达到了5120 x 2880,但是告诉软件的时候还是说我的分辨率是1280720,相当在盖茨看来的一个逻辑像素点,背后实际上已经有16个物理像素点为其工作了!
作者:暮成雪
链接:https://www.zhihu.com/question/40506180/answer/623203881
来源:知乎
- rpx: 小程序的尺寸单位,规定屏幕宽为750rpx,及750px的逻辑像素的设备 1px = 1rpx
换算
var 屏幕逻辑像素宽度 = wx.getSystemInfoSync().windowWidth;
var 比列 =750/屏幕逻辑像素宽度;