在微信小程序中,将设计稿尺寸(宽402px)适配iOS基准375px的屏幕,核心是通过等比缩放计算适配尺寸,以下是精准的计算方法、工具化实现和实操示例,确保视觉还原度:
一、核心计算公式(必记)
小程序适配的核心是「以设计稿宽度为基准,计算缩放比例,再换算目标尺寸」:
步骤1:计算缩放比例
缩放比例 = 小程序基准宽度(375) / 设计稿宽度(402)
代入数值:
缩放比例 = 375 ÷ 402 ≈ 0.9328
步骤2:换算任意设计稿尺寸
小程序适配尺寸 = 设计稿尺寸 × 缩放比例
二、实操示例(以设计稿宽402px为例)
假设设计稿中元素尺寸:
- 按钮宽:100px(设计稿402宽)
- 字体大小:24px(设计稿402宽)
- 间距:20px(设计稿402宽)
计算适配尺寸:
- 按钮宽:100 × 0.9328 ≈ 93.28px
- 字体大小:24 × 0.9328 ≈ 22.39px
- 间距:20 × 0.9328 ≈ 18.66px
三、小程序中落地实现(两种方式)
方式1:手动计算(简单场景)
直接在WXSS中写换算后的尺寸(建议保留1位小数,兼顾精度和简洁):
css
/* 设计稿按钮宽100px → 适配后93.3px */
.btn {
width: 93.3px;
height: 46.6px; /* 设计稿高50px × 0.9328 ≈ 46.6px */
font-size: 22.4px; /* 设计稿24px × 0.9328 ≈ 22.4px */
margin: 18.7px 0; /* 设计稿20px × 0.9328 ≈ 18.7px */
}
方式2:封装工具函数(推荐,自动适配)
在小程序中创建 utils/px2rpx.js 工具文件,自动计算适配尺寸(兼容不同设备):
javascript
/**
* 设计稿尺寸转小程序适配尺寸
* @param {Number} designPx - 设计稿像素(基于402宽)
* @returns {Number} 适配375宽的像素值
*/
export function px2adapt(designPx) {
const designWidth = 402; // 设计稿宽度
const baseWidth = 375; // 小程序基准宽度(iOS)
return (designPx * baseWidth) / designWidth;
}
页面中使用:
js
// 页面js中引入
import { px2adapt } from '../../utils/px2rpx.js';
Page({
onLoad() {
// 计算设计稿100px对应的适配尺寸
const btnWidth = px2adapt(100);
console.log(btnWidth); // 输出≈93.28
this.setData({ btnWidth });
}
});
wxml
<!-- 页面wxml中使用 -->
<view class="btn" style="width: {{btnWidth}}px;">按钮</view>
方式3:基于rpx适配(小程序原生方案,更兼容)
小程序的 rpx 是自适应单位(规定750rpx = 屏幕宽度),可先将设计稿转rpx,再适配375屏:
- 设计稿转rpx公式:
rpx值 = 设计稿px × (750 / 设计稿宽度)
例:设计稿100px → 100 × (750/402) ≈ 186.57rpx - 在375px宽的iOS设备上,186.57rpx = 186.57 ÷ 2 = 93.28px(和方式1结果一致)
使用示例:
css
.btn {
width: 186.6rpx; /* 设计稿100px → 100×750/402≈186.6rpx */
font-size: 44.8rpx; /* 设计稿24px → 24×750/402≈44.8rpx */
}
四、关键注意事项
- 精度处理:计算结果建议保留1~2位小数(如93.3px),避免过多小数位增加维护成本;
- 特殊元素 :
- 字体大小:适配后建议取整(如22.4px → 22px),避免文字模糊;
- 圆角/边框:优先用rpx或取整像素,保证视觉统一;
- 多设备兼容:若需同时适配Android(如360px宽),建议用rpx方案(自动适配所有屏幕);
- 设计稿标注:可要求设计稿标注「基于750rpx」的尺寸,直接复用rpx值,减少换算成本。
总结
| 适配方式 | 计算逻辑 | 适用场景 |
|---|---|---|
| 手动等比缩放 | 设计稿px × (375/402) | 简单页面、少量元素 |
| 工具函数 | 封装公式自动计算 | 复杂页面、大量动态尺寸 |
| rpx原生适配 | 设计稿px × (750/402) | 多设备兼容、全端适配 |
优先推荐「方式3(rpx)」,符合小程序的自适应设计理念,无需单独处理iOS/Android差异;若需精准对齐375屏,用「方式1/2」的等比缩放即可。