返回

屏幕适配指南:优化您的 Web 应用以适应 iPhone 刘海屏和底部小黑条

前端

随着苹果公司推出 iPhone X、XR、11、12 和 13 等型号,刘海屏和底部小黑条已成为这些设备的标志性设计元素。这些设计元素为用户带来了无边框显示体验,但同时对 Web 开发人员提出了新的挑战。

为了确保 Web 应用在这些设备上正常运行,必须对顶部和底部进行特殊适配。本文将提供逐步指南,指导您如何有效地为 iPhone 刘海屏和底部小黑条优化您的 Web 应用。

理解 iPhone 的刘海屏和底部小黑条

在 iPhone X 和更新机型中,刘海屏位于设备的顶部,容纳了前置摄像头、麦克风和其他传感器。底部小黑条位于屏幕底部,可容纳 Home 栏或手势栏(取决于设备型号)。

这些设计元素会影响 Web 应用的显示方式。如果不进行适当的适配,内容可能会被刘海屏遮挡或被底部小黑条截断。

适配步骤

1. 使用 meta 视口标签

<head> 部分添加以下 meta 视口标签:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

此标签指示浏览器以设备的宽度渲染 Web 应用,并将其初始缩放级别设置为 100%。这确保了 Web 应用填充整个屏幕,并在所有设备上正确缩放。

2. 使用环境变量

苹果公司提供了一些环境变量,可用于检测设备的刘海屏和底部小黑条。这些变量是:

  • window.navigator.standalone:如果 Web 应用作为独立应用程序运行,则为 true,否则为 false
  • window.navigator.deviceMemory:设备的可用内存(以千兆字节为单位)。

您可以使用这些变量来确定设备是否具有刘海屏或底部小黑条,并相应地调整您的布局。

3. 创建安全区域

安全区域是屏幕上不会被刘海屏或底部小黑条遮挡的区域。要创建安全区域,请使用 CSS 属性 padding-toppadding-bottom

#content {
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
}

此样式将在设备具有刘海屏和底部小黑条时在内容周围创建一个安全区域。

4. 处理滚动行为

默认情况下,iOS 会在滚动时隐藏地址栏和底部菜单栏。这可能会导致在 iPhone 上滚动 Web 应用时出现问题。

要解决这个问题,请在 <head> 部分添加以下 CSS:

body {
  -webkit-overflow-scrolling: touch;
}

此样式会启用原生滚动行为,这将防止在滚动时隐藏浏览器 UI。

结论

通过遵循这些步骤,您可以有效地为 iPhone 刘海屏和底部小黑条优化您的 Web 应用。通过创建安全的区域并处理滚动行为,您可以确保您的 Web 应用在所有 iPhone 机型上都能正常运行并提供最佳用户体验。

不断测试您的 Web 应用在不同 iPhone 机型上的显示和行为非常重要。这将帮助您发现并解决任何适配问题,并确保您的用户始终获得一致且愉悦的体验。