资讯专栏INFORMATION COLUMN

CSS3常见问题:100vh在移动浏览器中不是固定的,恒定的

NSFish / 2365人阅读

摘要:正文不幸的是这个问题是一直有意存在的这是一个众所周知的问题至少在中是存在的,这是有意的,因为它可以防止其他问题。参见回复这完全是故意的。常见问题在移动浏览器中不是固定的,恒定的创客青年博客基本问题是滚动时可见区域会动态变化。

站长博客:https://www.pipipi.net/

前言
加载页面时所有浏览器都有一个顶级菜单(例如显示地址栏),当您开始滚动页面时,该菜单会向上滑动。这个时候该菜单会变小,由于100vh仅在视口的可见部分计算,因此会导致所有布局都重新绘制并重新调整,对用户体验的糟糕跳跃效果。

参见图如下,明显可见第二个菜单栏变小了。

正文
不幸的是这个问题是一直有意存在的.....
这是一个众所周知的问题(至少在safari mobile中是存在的),这是有意的,因为它可以防止其他问题。 参见Benjamin Poulain回复webkit bug:

这完全是故意的。我们需要花费大量的工作才能达到这个效果。 CSS3常见问题:100vh在移动浏览器中不是固定的,恒定的-创客青年博客

基本问题是:滚动时可见区域会动态变化。如果我们相应地更新CSS视口高度,我们需要在滚动期间更新布局。不仅如此看起来像狗屎,但在大多数页面中以60
FPS执行此操作几乎是不可能的(60 FPS是iOS上的基线帧速率)。

动态更新高度不起作用,我们有几个选择:在iOS上删除视口单元,匹配iOS 8之前的文档大小,使用小视图大小,使用大视图大小。

根据我们的数据,使用更大的视图大小是最好的折衷方案。大多数使用视口单元的网站在大多数时候看起来很棒。
可以看考Nicolas Hoizey大神对这个问题的研究: https://nicolas-hoizey.com/20...

不打算修复

目前,除了避免在移动设备上使用视口高度之外,没有更好的解决办法。移动Chrome似乎也想要适应这一点,尽管它不确定它们是否会贯彻执行。(参考链接)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/117434.html

相关文章

  • 【技术】移动端适配 px2rem/px2vw 原理与实现

    摘要:不同的前端框架,配合等打包工具,可以更高效的使用这些插件,完成移动端适配的配置工作。 简介 【目标】:前端开发移动端及H5时候,不需要再关心移动设备的大小,只需要按照固定设计稿的px值布局!【基础】 dpr(设备像素比)css的像素px不等于设备像素/分辨率/各种值,css的px可以简单理解为虚拟像素,与设备无关,css的px需要乘dpr计算为设备像素; css3 的 rem,即ro...

    AlexTuan 评论0 收藏0
  • css面试题

    摘要:目前,除了及更早版本外,所有浏览器均已支持。视口单位中的视口,桌面端指的是浏览器的可视区域移动端指的就是中的。根据规范,视口单位主要包括以下个等于视口宽度的。等于视口高度的。生成相对定位的元素,相对于其正常位置进行定位。 css面试题 css垂直居中的方法有哪些? 已知高度的块级子元素,采用绝对定位和负边距.container { position: relative;}.verti...

    longmon 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<