网页适配全面屏,页面安全区

首先在<head>的<meta name="viewport">中加入“viewport-fit=cover”

<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1, user-scalable=0, minimun-scale=1, maximun-scale=1">

viewport-fit有两个选项(default是auto)

含义
auto 默认:viewprot-fit:contain;页面内容显示在safe area内
cover viewport-fit:cover,页面内容充满屏幕

然后给涉及到安全区域的元素加style

.footer{
  width: 100%;
  height: 1rem;
  position: fixed;
  bottom: 0;
  left: 0;
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom:env(safe-area-inset-bottom);
  background-color: #fff;
}

The env() function shipped in iOS 11 with the name constant(). Beginning with Safari Technology Preview 41 and the iOS 11.2 beta, constant() has been removed and replaced with env(). You can use the CSS fallback mechanism to support both versions, if necessary, but should prefer env() going forward.

即 iOS 11.2之前用constant(),之后用env(),需要都写上用于兼容。

注意:如果fit-content设置的是auto,则safe-area-inset-bottom等不起作用。

遇到问题

  1. 对于底部安全区问题,如果设置margin-bottom则底部会“空”出来(如下图),为了不空,需要将安全区设置到padding-bottom上(注意设置background-color的值),因为背景颜色的范围是content+padding。
  2. 注意底部元素的盒子模型,如果设置了border-box,并且设置了height,则改变padding-bottom并不会改变距离底部的高度(总体高度不变),不能起到安全区的效果。

参考1:safe-area-inset-bottom iphone
参考2:网页适配 iPhoneX,就是这么简单

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,196评论 0 10
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 13,566评论 0 23
  • 谢谢一莲老师和同学们的不离不弃,虽然我有时候不太回应,但是一直关注着大家,看着大家分享的生活,学习,工作,以及学习...
    qin馨儿阅读 1,459评论 0 1
  • 看了五分之一的《夏摩山谷》。 原以为是一本散文随笔集,没想到是颇为完整的情节故事,更料不到是字里行间充满了颇带佛学...
    王慢慢_阅读 1,558评论 0 0
  • 每一页都像遗落的珍珠 一、柳比歇夫最大的秘密是:如何生活的更好。 在茫茫人海中,看到柳比歇夫这样一个人,你觉得,甚...
    刘少立阅读 2,962评论 0 0

友情链接更多精彩内容