从px到rpx了解微信小程序开发

24次阅读

共计 1409 个字符,预计需要花费 4 分钟才能阅读完成。

我一直在想,我是不是有必要再写这一节,还是给大家提供一些阅读链接。
因为关于单位的定义都是比较官方的。没什么好讨论的,我这里做一个汇总和简单的说明吧。
首先本文只以移动设备为例说明。
本文摘要:设计师以 iphone6 为标准出设计稿的话,1rpx=0.5px= 1 物理像素。Photoshop 里面量出来的尺寸为物理像素点。所以可以直接使用标注尺寸数据。
————————————– 看懂本文摘要的话,就不用阅读下面的内容了 ————————————-
【英寸 Inch】英寸表示屏幕斜对角线的长度。如下图所示:

【像素 Pixel】像素是图像的基本采样单位,它不是一个确定的物理量,因为像素点的物理大小是不确定的。如图:

【分辨率】分辨率是屏幕像素的数量,一般用屏幕宽度的像素点乘以屏幕高度的像素点。如描述 iphone6 的分辨率是 750*1334.
分辨率又分为【物理分辨率】和【逻辑分辨率】,值得注意的是实际工作中设计师常常给的是物理分辨率,程序中用到的是逻辑分辨率,但是都称为分辨率,容易混淆。
【物理分辨率】是硬件所支持的分辨率,【逻辑分辨率】是软件可以达到的分辨率。
物理分辨率和逻辑分辨率的商称为【像素倍率 dpr】,也就是常说的几倍屏。
如下图中所示,iphone6 的分辨率写着 375667,这里指的就是它的逻辑分辨率。我们上面提的 7501334 则是它的物理分辨率。
所以 iphone6 的像素倍率 =(7501334)/(375667)=2

理解了上述的几个概念,我们就可以接着来看下面的几个单位。
【px】px 就是 Pixel 的缩写,就是指像素。这个作为图片采样的基本单位,没什么需要特别说明的。
【rem】在做移动端适配是最常用的方法就是使用 rem 作为单位,因为 rem 是根据 html 的 fontsize 去动态计算实际的 px 的。
所以常常应用这点,做反向使用。即根据屏幕大小动态的设置 fontsize. 来达到不同的分辨率下有一样的效果。
【rpx】rpx 其实是微信对于 rem 的一种应用的规定,或者说一种设计的方案,官方上规定屏幕宽度为 20rem,规定屏幕宽为 750rpx。
所以在微信小程序中 1rem=750/20rpx。
但是这不是我们要关注的重点。
在使用 rem 时,我们常常让设计师根据 iphone6 的标准出设计稿。因为如果以 iphone6 为标准,并且在 iphone6 上将 fontsize 设置成 62.5%。
那么 1rem 就等于 10px,我们只要将设计师标注的尺寸(一般标注的是物理分辨率)除以 20 就可以得到单位为 rem 的数值了。
在 iPhone6 上,屏幕宽度为 375px,共有 750 个物理像素,则 750rpx = 375px = 750 物理像素,1rpx = 0.5px = 1 物理像素。
css 中的 px 与设备的物理像素并非绝对的一比一关系。
px 与物理像素的比例与设备的 dpr(像素倍率)有关。
rpx 称为相对像素值,rpx 与物理像素也并非绝对的一比一关系。
wxss 将设备宽定义为 750rpx,是以 iPhone6 的分辨率(750×1334)为基准划分的。
也就是说,在 iPhone6 上,1rpx= 1 物理像素 =0.5px。
因为设计师标注的尺寸一般是物理分辨率。所以如果以 iphone6 为标准出设计稿的话,那么我们就可以不需要经过换算直接标准 rpx。
这节课的内容就到这里结束了。
感谢您的阅读。

正文完
 0