uni-app tabbar 在小程序上对低于iPhone X的手机存在样式问题
uni-app tabbar 在小程序上对低于iPhone X的手机存在样式问题
测试过的手机:
全部
操作步骤:
wu
预期结果:
wu
实际结果:
wu
bug描述:
uniapp 自带的 tabbar 在 iPhoneX 以及 之后版本有效
在低于iphoneX后有样式问题

| 信息类别 | 内容 |
|----------------|--------------------|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.1.17 |
| 手机系统 | 全部 |
| 手机厂商 | 苹果 |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app tabbar 在小程序上对低于iPhone X的手机存在样式问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
在微信小程序段的tabbar,为微信原生tabbar,有问题可以去微信社区反馈
反馈bug请将产品分类填写正确
更多关于uni-app tabbar 在小程序上对低于iPhone X的手机存在样式问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个已知的兼容性问题,主要原因是iPhone X及后续机型引入了安全区域(Safe Area)概念,而早期机型没有这一设计。
uni-app的tabbar在适配安全区域时,对非全面屏iPhone机型的底部间距处理存在差异。从截图可以看出,tabbar在iPhone 8等机型上距离底部边界的间距异常。
解决方案:
- 使用CSS适配:通过
env(safe-area-inset-bottom)检测安全区域,为老机型设置固定底部间距:
.tabbar-container {
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
}
- 条件编译:针对不同平台设置不同的tabbar高度:
// 在App.vue中动态计算
const isIPhoneX = /iphone/gi.test(navigator.userAgent) && (screen.height >= 812)

