微信信小程序rpx

1,062 阅读2分钟

rpx(responsive pixel: 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx

  • 使用rpx单位让小程序内部自动可以根据屏幕宽度进行自适应,类似使用rem单位布局:
  • rem需要预先设定好根元素html的字体fontSize大小,然后使用该单位其他元素大小都自动改变。(即不同设备大小都会等比例缩放)
  • rpx同理,预先规定好了所有屏幕宽为750rpx。 比如iPhone6时屏幕为375px(开发像素),则1 rpx/750 rpx = 0.5 px/375 px 所以1rpx = 0.5px(会自动转换成对应大小px)
  • 当给出的设计稿大小为:元素大小/页面大小 = 200px/750px时; 则使用的rpx为单位开发的时候元素样式大小计算方式为 ? rpx/ 750rpx = 200px / 750px 即可得到开发的rpx单位大小200rpx, 同时这个开发的200rpx数值在不同的设备下都会自动适应大小,因为单位是rpx~~~自适应;
  • 自适应时单位关系转换如下图:

rpx.png

💡 技巧:开发时快速得到对应rpx值的方式: (直接按比例计算出结果即可,rpx会自动根据设备rpx⇒px的转换比例转成对应的px单位) 由该公式 `? rpx/ 750rpx = 设计稿元素大小px / 设计稿大小px` 得到 `? rpx = 设计稿元素大小 * 750rpx / 设计稿大小` 可以结合`calc()` 计算大小
// 例子: 设计稿宽750px,其中有一个元素宽375px,求写多少 __ rpx ?
// 计算: ? / 750 = 375px / 750px 得到只需写 375rpx

// 放到iPhone6上,375 rpx => __ px 自动根据比例 1 rpx :0.5 px, 
// 则得到Dom中元素的实际元素大小为 187.5 px ✔

rpx转换px的计算规则(得到转换比例后、会自动根据设备像素按比例转换):

小程序编译后,rpx会做一次px换算。换算是以375px个物理像素为基准 如设备物理像素为375px,则1rpx = 375px基准/375px设备(计算转换),则转换比例结果为1rpx = 1px; 而iPhone6物理像素为750px,则为375基准/750设备 ⇒ 0.5px(计算转换),则转换比例结果为1rpx = 0.5px;