Vant组件在不同手机屏幕显示比例不对,怎么调整?
用Vant3写页面时,按钮和输入框在iPhone 13上显示正常,但到华为nova9上突然变小了一半,搞不懂为啥?
已经按文档设置了viewport和Config { standalone: true },还引入了Vant的适配函数:
import { createApp } from 'vue';
import { ConfigProvider, createTransfer } from 'vant';
const app = createApp(App);
app.use(ConfigProvider);
app.config.globalProperties.$transfer = createTransfer();
但页面依然出现布局错乱,特别是底部导航栏图标在部分机型上会重叠。尝试改写html{ font-size: 100px }也没效果,有没有其他配置没考虑到?
这样所有 px 会自动转 rem,不同屏幕宽度下布局就不会错乱了。
一般这样处理:用 viewport 的动态计算来设置根字体大小。你现在的
html { font-size: 100px }是固定的,没法适应不同设备。可以试试下面这个方法:把这个函数放在入口文件里执行就行。它会根据屏幕宽度动态计算
font-size,这样 Vant 的组件就能按照正确的比例显示了。另外,底部导航图标重叠的问题可能是父容器高度或者 flex 布局没设置好。检查下有没有给父元素固定高度,或者尝试加个
min-height。如果还不好使,可以看看是不是某些机型的系统样式干扰了,加个all: unset;试一下。最后提醒一下,Vant 的适配主要依赖
rem单位,所以根字体大小一定要弄对,这是关键中的关键。