uni-app:两种像素:px和rpx

  1. px物理像素
  2. rpx响应式像素
  3. rpx解决什么问题?

px物理像素

  • px(pixel) 是 CSS 中的绝对长度单位。
  • PC 网页中,1px ≈ 1 个屏幕物理像素(但受设备像素比 DPR 影响)。
  • 移动端,情况更复杂:
设备 屏幕宽度(物理像素) CSS 逻辑宽度(viewport) 1 CSS px = ? 物理像素
iPhone 13 1170 × 2532 390 × 844 3(DPR=3)
某安卓机 1080 × 2340 360 × 780 3(DPR=3)

移动端浏览器会将高分辨率屏幕“缩放”成一个较小的逻辑尺寸(如 375px 宽),这个逻辑尺寸就是 CSS 像素

所以:px 是 CSS 逻辑像素,不是物理像素,但它在不同设备上实际显示大小不一致

rpx响应式像素

rpx(responsive pixel): uni-app / 微信小程序的“响应式像素”

rpx 是一种与屏幕宽度相关的动态单位规定:屏幕宽度 = 750 rpx

这是 微信小程序最早提出,后被 uni-app 全面采用 的单位。

换算公式:1 rpx = (当前设备屏幕宽度 / 750) px

设备 屏幕 CSS 宽度 1 rpx = ? px 750 rpx = ? px
iPhone 13 390 px 390 / 750 = 0.52 px 750 × 0.52 = 390 px ✅
安卓全面屏 360 px 360 / 750 = 0.48 px 750 × 0.48 = 360 px ✅
iPad(横屏) 1024 px 1024 / 750 ≈ 1.365 px 750 × 1.365 ≈ 1024 px ✅

无论什么设备,750 rpx 总是等于屏幕宽度!

rpx解决什么问题?

问题:设计师给了一张 750px 宽的 UI 图,如何在 iPhone 和安卓机上完美还原?

❌ 用 px 的问题:

  • 设计稿按钮宽 200px
  • 在 iPhone(390px 宽)上写 width: 200px → 占屏 51%
  • 在 安卓(360px 宽)上同样 200px → 占屏 55% → 布局错乱!

✅ 用 rpx 的方案:

  • 设计稿 750px 宽 → 按比例:200px = (200 / 750) × 750 rpx = 200 rpx
  • 在任何设备上:
    • iPhone:200 rpx = 200 × (390/750) ≈ 104 px
    • 安卓:200 rpx = 200 × (360/750) = 96 px
  • 占屏比例始终 = 200 / 750 ≈ 26.7% → 完美还原设计!

×

喜欢就点赞,疼爱就打赏