iOS 全面屏 web 适配

viewport-fit 这个属性解决全屏的问题,设置了这个属性后,页面就会填充整个刘海区域。

  1. <meta name=“viewport” content=“width=device-width, initial-scale=1.0, viewport-fit=cover”>

上面属性设置之后,再把html,boby高度设置成100% 发现底部出现空白没有填满,这主要是这里的100%,只是安全区域的高度,是不包含非安全区域的。需要主动获取屏幕像素高度为html、body设置。

其他 viewport-fit 可设置的值:

  • contain: 可视窗口完全包含网页内容(安全区域)
  • cover:网页内容完全覆盖可视窗口(全屏)
  • auto:默认值,跟 contain 表现一致

constant 函数

Webkit 的一个 CSS 函数,用于设定安全区域与边界的距离,有四个预定义的变量:

  • safe-area-inset-left:安全区域距离左边边界距离
  • safe-area-inset-right:安全区域距离右边边界距离
  • safe-area-inset-top:安全区域距离顶部边界距离
  • safe-area-inset-bottom:安全区域距离底部边界距离

注:当 viewport-fit=contain 时 constant 函数是不起作用的,必须要配合 viewport-fit=cover 使用。

可设置底部安全距离进行避让,例:

  1. @supports (bottombottom: constant(safe-area-insetbottombottom)) {
  2.   div {
  3.     margin-bottom: constant(safe-area-insetbottombottom);
  4.   }
  5. }

本文链接地址: iOS 全面屏 web 适配

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注