移动端避免使用100vh[通俗易懂]

移动端避免使用100vh[通俗易懂]CSS中的视口单位听起来很棒。如果要设置元素的样式以占据整个屏幕的高度,则可以设置height:100vh,您拥有一个完美的全屏元素,该元素会随着视口的变化而调整大小!可悲的是,事实并…

大家好,又见面了,我是你们的朋友全栈君。

CSS中的视口单位听起来很棒。如果要设置元素的样式以占据整个屏幕的高度,则可以设置height: 100vh,您拥有一个完美的全屏元素,该元素会随着视口的变化而调整大小!可悲的是,事实并非如此。100vh在移动浏览器中以微妙但基本的方式被破坏,这使其几乎无用。最好避免100vh ,而是依靠javascript设置高度以获得完整的视口体验。

核心问题是移动浏览器(我正在为您浏览,Chrome和Safari)具有“帮助”功能,其中地址栏有时可见,有时隐藏,从而改变了视口的可见大小。这些浏览器没有将100vh高度调整为视口高度变化时屏幕的可见部分,而是将100vh设置为浏览器的高度,并隐藏了地址栏。结果是,当地址栏可见时,屏幕的底部将被切除。

如下所示:

移动端避免使用100vh[通俗易懂]

当显示地址栏时,由于移动浏览器错误地将100vh设置为屏幕高度而没有显示地址栏,因此屏幕底部被切断。在上图中,应隐藏在屏幕底部的按钮。更糟糕的是,当用户首次访问移动设备上的网站时,地址栏将在顶部可见,因此默认的体验是破碎的体验。

更好的解决方案:window.innerHeight

解决此问题的一种方法是依靠javascript而不是CSS。页面加载时,将高度设置为window.innerHeight可以将高度正确设置为窗口的可见部分。如果地址栏可见,则window.innerHeight将为全屏的高度。如果地址栏是隐藏的,则window.innerHeight将是屏幕上可见部分的高度,这正是您所期望的。

在Wordsheet.io上学习时,您可以看到这一点。例如,尝试在移动浏览器上打开wordsheet.io/demo/V3Y 。无论地址栏是否可见,屏幕都将是视口的高度。此外,通过在页面首次加载时将高度锁定在适当的位置,可以防止地址栏隐藏在使用该网站的过程中,从而带来尴尬的屏幕调整大小体验。

遗憾的是,在不依赖JavaScript的情况下,仍然没有一种简单的方法来使元素占据整个视口高度。 height: 100vh 非常接近 ,但鉴于其在移动设备上的局限性,最好避免使用它。

我的博客:http://caibaojian.com

公众号文章:http://t.cn/AiuNZVZG

掘金小册8折优惠:http://caibaojian.com/goods

点击阅读原文加我的微信群,每日分享好文章。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133174.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 利用模板导出文件(一)之XLSTransformer导出excel文件

    利用模板导出文件(一)之XLSTransformer导出excel文件由于现在好多公司都在实行办公无纸化操作,所以一般都是使用excel以及word来办公,本文是公司项目中使用excel文件模板生成对应的文件:首先,需要导入一下几个包:接下来就是具体的代码:importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.Has

    2022年7月24日
    6
  • java 僵尸危机秘籍_《僵尸危机3》通关秘籍

    java 僵尸危机秘籍_《僵尸危机3》通关秘籍关于武器:1一开始给的手枪,子弹无限。2UZI:冲锋枪,一开始100发子弹,以后会更多3Shotgun:单暴,打小僵尸一下就死,BOSS5、6下,以后是连暴4Barrel:油桶,放了以后,打一枪就炸,注意别把自己炸死5Grenade:手榴弹,一扔就OK6walls:是墙,用来堵路的7Claymore:炸弹,放一个,走远点,僵尸走到那就爆了8Rocket:火箭弹:离远点再打,容易自残…

    2022年10月24日
    0
  • 走近webpack(2)–css打包及压缩js

    前面的文章介绍了webpack的devServer以及多入口多出口文件的配置,咱们继续往下学。在开始学习接下来的知识之前,我们先回顾一下,前文提到了webpack的简单配置方法,但是只详细说了下入口

    2022年3月25日
    39
  • Python之matplotlib库建议收藏

    知识结构pyplot.plot()流程1._axes.py中plot()函数说明a.调用说明plot([x],y,[fmt],data=None,**kwargs)plot([x

    2021年12月19日
    40
  • mybatiscodehelperpro激活码2.9.4【2021免费激活】[通俗易懂]

    (mybatiscodehelperpro激活码2.9.4)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlb…

    2022年3月27日
    1.2K
  • linux的grep命令详解_grep -v命令

    linux的grep命令详解_grep -v命令文章目录一、grep常用命令1、语法2、范例二、grep的一些高级参数1、语法2、范例三、基础正则表达式练习1、与中括号`[]`结合2、与反向选择^结合使用3、与行首`^`和行尾$字符结合4、任意一个字符`.`与重复字符`*`5、`{}`限定连续字符范围一、grep常用命令grep的功能是分析一行信息,若其中有我们所需要的信息,就将其拿出来。需要注意的是它以整行为单位…

    2022年8月30日
    0

发表回复

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

关注全栈程序员社区公众号