Vant按钮组件在iPhone14上字体和间距变形怎么办?
在React项目里用Vant的按钮组件,按照文档设置了rem基准值,但在iPhone14真机测试时按钮字体突然变大,左右间距也比设计稿宽了很多。
代码配置是这样的:
import 'vant/lib/index.css';
import { ConfigProvider, Button } from 'vant';
function App() {
return (
<ConfigProvider>
<Button type="primary">立即购买</Button>
</ConfigProvider>
);
}
已经通过vite-plugin-uni做了移动端适配,根节点font-size设成了16px(设计稿750基准)。其他组件没问题,就是按钮样式在大屏手机上会异常放大,有没有漏掉什么配置步骤啊?
首先确认一下是不是
postcss-px-to-viewport或者类似的插件配置有问题。如果用的是vite-plugin-uni做适配,确保它的unitPrecision精度设置得当,建议调成5或者更高,避免转换后的小数点精度丢失。然后重点检查Vant的样式单位,它默认是用
px的,但你用了rem方案,这可能会导致冲突。可以在ConfigProvider里强制启用vant的scale能力,代码类似这样:这里的
themeVars能覆盖Vant默认样式,直接把按钮的字体和间距锁定住,避免被动态计算影响。还有一种可能是你根节点的
font-size被某些逻辑动态修改了,比如有些库会根据屏幕宽度重新调整html的font-size,建议在调试工具里打印一下实时的document.documentElement.style.fontSize,看看是不是有其他地方偷偷改了。最后一个小技巧,如果实在搞不定,可以考虑直接用媒体查询锁死iPhone14的样式,比如:
这样虽然不够优雅,但能快速解决问题。记得缓存起来,别让这些样式每次都重新计算。