在 UniApp 中,rpx(响应式像素)是一种自适应单位,用于实现跨设备屏幕的适配。它基于屏幕宽度进行动态换算,默认设计稿宽度为 750rpx(即 1rpx = 屏幕宽度 / 750)。以下是 rpx 的转换方法和使用场景详解:
1. 基本转换原理
- 公式:
px = (rpx值 * 屏幕宽度) / 750
例如,在宽度 375px 的设备上,20rpx = (20 * 375) / 750 = 10px。
- 设计稿适配:
若设计稿以 750px 宽度为标准,直接使用设计稿中的像素值(单位换为 rpx)即可,无需手动计算。
2. UniApp 自动转换
- UniApp 编译时自动将
rpx 转换为对应平台的适配单位(如微信小程序中的 rpx,H5 中的 rem 或 vw),开发者无需干预。
3. 手动转换方法
如需在 JS 逻辑中动态计算,可使用以下代码:
// 获取屏幕宽度(单位:px)
const screenWidth = uni.getSystemInfoSync().screenWidth;
// rpx 转 px
function rpxToPx(rpx) {
return (rpx * screenWidth) / 750;
}
// px 转 rpx
function pxToRpx(px) {
return (px * 750) / screenWidth;
}
// 示例:将 100rpx 转换为 px
console.log(rpxToPx(100)); // 输出对应 px 值
4. 注意事项
- 非弹性布局慎用:
rpx 适用于按比例缩放的布局,固定尺寸元素建议使用 px。
- 性能优化:大量动态转换可能影响渲染效率,尽量在 CSS 中直接使用
rpx。
- 平台差异:部分平台(如 App)可能对
rpx 支持有细微差异,需真机测试。
总结
通过 rpx 可简化多端适配,重点在于理解其与屏幕宽度的比例关系。开发时优先用 CSS 定义样式,JS 逻辑中仅在必要时进行手动转换。