Vant 组件在不同手机上显示大小不一致怎么办?
我用 Vant 写了个移动端页面,但在 iPhone 和安卓机上按钮、文字大小看起来差别很大,明明没写死 px,也引入了 postcss-px-to-viewport 插件,为啥还是不统一?
我的 postcss 配置是这样的:
module.exports = {
plugins: {
'postcss-px-to-viewport': {
viewportWidth: 375,
unitPrecision: 5,
propList: ['*'],
viewportUnit: 'vw',
fontViewportUnit: 'vw',
selectorBlackList: [],
minPixelValue: 1,
mediaQuery: false,
exclude: []
}
}
}
是不是 Vant 自带的样式没适配好?还是我哪里漏了?
首先检查下你的 viewportWidth 设置,375 对应的是 iPhone 6/7/8 的屏幕宽度,但安卓机尺寸差异大,建议按设计稿来设置更准确的值。如果用 375,那其他设备上显示比例会有偏差。
另外 postcss-px-to-viewport 配置里 propList: ['*'] 这个写法有点危险,最好明确列出要转换的属性名,像这样:propList: ['height', 'width', 'font-size'],避免不必要的样式转换。
记得给 body 设置基础 font-size,比如 100px,这样 vw 单位才能正确换算。代码大概这样:
还有个小技巧,在不同设备上测试时,可以用浏览器开发者工具模拟不同分辨率,能更快找到问题。
最后提醒一句,做移动端适配别光指望插件,自己也要多测几台机器,毕竟用户环境太复杂了。累是累点,但安全第一,别等上线了才发现问题。