rem的作用与运用,小程序为什么用rpx为单位

rem的作用与运用,小程序为什么用rpx为单位,第1张

开发过小程序的人都知道,小程序的单位是rpx,这是为什么?有什么作用呢,其实它源于rem布局,先来了解下rem的优势与工作原理。

rem布局在没正式使用到项目中,只知道他是根据html根元素的font-size来变化的

若:html{ font-size:20px}

则1rem = 20px

然后呢,有什么作用,定完html的font-size后,元素使用rem和使用px有什么区别,不都一样么?

其实rem他的主要运用场所在移动端,移动端的设计稿一般都是iphone6为基础设计的,设计稿的宽为750px;

手机的物理尺寸是375px;所以在用css的时候,设计尺寸需要除以2;

要用rem完成移动端的适配,需要固定浏览器的显示宽度不变。

也就是说,我在设计稿上量到宽367px的大小,那么css里可以直接写width:3.67rem。

此时,(以375px宽手机为例)第二步js设置的html字体大小为:375px除以7.5得50px;

7.5rem乘以50px得到的是375px刚好是屏幕的满宽。

也就是说,不论手机屏幕宽度多少,7.5rem永远能占屏幕的满宽。这样,在宽屏手机里,元素能够等比例放大一些,实现各类机型的适配,也方便了前端编码。

而做过小程序的人都知道,小程序不论任何机型,屏幕满宽都是750rpx,其实也就是从7.5rem延伸而来,至于根目录字体大小的配置,微信开发者工具已经将这些都配置好了,你尽情用就可以了。

如果有帮助,请点赞支持哦。

微信小程序 开发--从px到rpx:

我一直在想,我是不是有必要再写这一节,还是给大家提供一些阅读链接。

因为关于单位的定义都是比较官方的。没什么好讨论的,我这里做一个汇总和简单的说明吧。

首先本文只以移动设备为例说明。

本文摘要:设计师以iphone6为标准出设计稿的话,1rpx=0.5px=1物理像素。Photoshop里面量出来的尺寸为物理像素点。所以可以直接使用标注尺寸数据。

--------------------------------------看懂本文摘要的话,就不用阅读下面的内容了-------------------------------------

【英寸Inch】英寸表示屏幕斜对角线的长度。如下图所示:

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

分辨率】分辨率是屏幕像素的数量,一般用屏幕宽度的像素点乘以屏幕高度的像素点。如描述iphone6的分辨率是750*1334.

分辨率又分为【物理分辨率】和【逻辑分辨率】,值得注意的是实际工作中设计师常常给的是物理分辨率,程序中用到的是逻辑分辨率,但是都称为分辨率,容易混淆。

【物理分辨率】是硬件所支持的分辨率,【逻辑分辨率】是软件可以达到的分辨率。

物理分辨率和逻辑分辨率的商称为【像素倍率dpr】,也就是常说的几倍屏。

如下图中所示,iphone6的分辨率写着375*667,这里指的就是它的逻辑分辨率。我们上面提的750*1334则是它的物理分辨率。

所以iphone6的像素倍率=(750*1334)/(375*667)=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的分辨率(750x1334)为基准划分的。

也就是说,在iPhone6上,1rpx=1物理像素=0.5px。

因为设计师标注的尺寸一般是物理分辨率。所以如果以iphone6为标准出设计稿的话,那么我们就可以不需要经过换算直接标准rpx。

这节课的内容就到这里结束了。

感谢您的阅读。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8164543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存