奇思乎乎乎 iPhone 16e · 17 系列 · Air - 一束网址,折射万屏
100%

输入网址,立刻开始预览

预设:
自定义:

iPhone 17 灵动岛响应式预览

iPhone 17 全系采用灵动岛设计,取代了 iPhone 16e 上的刘海。这个变化导致顶部安全区高度从 47pt 增加到 59pt,很多原本在 iPhone 16e 上正常的页面,在 iPhone 17 上会出现顶部导航被遮挡或错位。

常见问题有三个:

第一,固定定位的顶部导航被遮挡。 如果你的导航栏用了 position: fixed; top: 0 并且高度只有 44px,在 iPhone 17 上会被灵动岛覆盖大约 15px。解决方案是给导航栏加 padding-top: env(safe-area-inset-top),让内容自动下移。

第二,页面顶部出现空白条。 如果你在 viewport meta 里没有加 viewport-fit=cover,iOS 会把整个页面限制在安全区内,导致顶部留出 59pt 的白色区域。

第三,iPhone 16e 正常但 iPhone 17 错位。 两款机型的 safe-area-inset-top 差了 12pt,如果你的代码里写死了 padding-top: 47px,那就只能在 16e 上正常。永远不要硬编码安全区数值,一律用 env()。

在下方预览器输入你的网址,同时对比 iPhone 16e(刘海)和 iPhone 17(灵动岛),一眼看出顶部适配是否有问题。

常见问题

iPhone 17 的灵动岛会挡住顶部导航吗?
如果导航栏高度小于 safe-area-inset-top(约 59pt),会被遮挡。建议给导航栏加 padding-top: env(safe-area-inset-top),或者把导航高度设为至少 88pt。
为什么我的页面在 iPhone 17 上顶部有空白?
因为 viewport meta 里没有加 viewport-fit=cover。加上后页面会延伸到灵动岛下方,视觉上更完整。
iPhone 16e 和 iPhone 17 的顶部安全区一样吗?
不一样。16e 是刘海屏,safe-area-inset-top 约 47pt;17 是灵动岛,约 59pt。相差 12pt,会导致同一份代码在两个机型上表现不同。
灵动岛的适配方式和刘海屏一样吗?
基本一样,都靠 safe-area-inset-* 环境变量。区别是灵动岛会随应用状态变化,但在浏览器里不触发,从 H5 角度看两者适配方式相同。

相关工具