iOS安全区域适配不生效怎么办?

东霞 ☘︎ 阅读 4

我在做移动端页面时,发现 iPhone X 及以上机型底部被 Home Indicator 遮挡了内容。明明加了 env(safe-area-inset-bottom),但好像没起作用,布局还是顶到最底下了。

我用的是 Vue + Vant 组件库,页面结构大概这样:

<template>
  <div class="page-wrapper">
    <van-button type="primary">底部按钮</van-button>
  </div>
</template>

<style scoped>
.page-wrapper {
  padding-bottom: env(safe-area-inset-bottom);
}
</style>

试过加 viewport-fit=cover,也确认 meta 标签是对的,但安全区域还是没生效,到底漏了啥?

我来解答 赞 0 收藏
二维码
手机扫码查看
1 条解答
UX-仙仙
UX-仙仙 Lv1
问题很可能是页面没有设 min-height: 100vh,padding 没地方显示。安全区域是基于视口的,元素得先占满全屏才行。

直接改成这样:

.page-wrapper {
min-height: 100vh;
padding-bottom: env(safe-area-inset-bottom);
box-sizing: border-box;
}


如果还不行,检查下 Vant组件有没有覆盖掉你的样式,可能需要用 !important 或者 :deep() 深度选择器。另外确保 meta 标签是 这样完整写的。
点赞
2026-03-13 19:24