微信内置浏览器(iOS 上是 WKWebView,安卓上是 X5 内核)和普通浏览器有三个关键差异,是 H5 适配最常见的坑。
第一,顶部被微信导航栏占用。iPhone X 系列在微信内打开 H5,可视区高度只有 724pt,比 Safari 里少 78pt。如果你的页面用了 height: 100vh 布局,会出现内容被截断。
第二,底部有安全区。iPhone 上有约 34pt 的底部安全区,安卓机型在 24-48pt 之间波动。必须用 env(safe-area-inset-bottom) 而不是固定像素,否则在部分安卓机型上会被 Home Indicator 遮挡。
第三,X5 内核的渲染差异。安卓微信用的 X5 内核(基于 Chromium 57),对 flexbox 的部分属性支持和最新 Chrome 有差异,gap 属性在老版本 X5 上无效,需要用 margin 兼容。
在下方预览器输入你的网址,同时对比微信 iPhone 竖屏、横屏和安卓版,能立刻看出 H5 在微信内的适配问题。