safari对100vh的兼容问题[通俗易懂]

safari对100vh的兼容问题[通俗易懂]需求:在以下的布局要求下,利用flex布局来实现,但需要在最外层给一个固定高度来控制页面高度及可滑动区域的可视高度很自然的利用100vh来控制最外层的高度,但测试过程中,发现safari浏览器中,页面的高度出现了偏差,比屏幕的高度还要高出一部分,出现了双层滚动条。经研究,发现safari的100vh是包含地址栏和功能列的,而其它浏览器100vh才是用户浏览器真正的可见区域(见下图)解决方案通过innerHeight重新定义一个变量代替vhsafariHacks(){letwin

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

需求:在以下的布局要求下,利用flex布局来实现,但需要在最外层给一个固定高度来控制页面高度及可滑动区域的可视高度

在这里插入图片描述

很自然的利用100vh来控制最外层的高度,但测试过程中,发现safari浏览器中,页面的高度出现了偏差,比屏幕的高度还要高出一部分,出现了双层滚动条。

经研究,发现safari的100vh是包含地址栏和功能列的,而其它浏览器100vh才是用户浏览器真正的可见区域(见下图)
在这里插入图片描述

解决方案

通过innerHeight重新定义一个变量代替vh

safariHacks() {
    let windowsVH = window.innerHeight / 100;
    document.querySelector('.wrap').style.setProperty('--vh', windowsVH + 'px');
    window.addEventListener('resize', function() {
        document.querySelector('.wrap').style.setProperty('--vh', windowsVH + 'px');
    });
}

在mounted内调用该方法
height: 100vh; /*給 Safari 以外的瀏覽器讀取*/
height: calc(var(--vh, 1vh) * 100);

注意–vh要写在100vh下面。。。

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

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

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


相关推荐

  • babel-preset-react_babel-loader

    babel-preset-react_babel-loaderhttps://www.fullstackreact.com/articles/what-are-babel-plugins-and-presets/当开发react或者vuejsapp时,开发者

    2022年8月2日
    5
  • c ringbuffer 源码_ringbuffer.c

    c ringbuffer 源码_ringbuffer.c#include#include#include#include#include”ringbuffer.h”/*createanewringbuffer*@capacitymaxbuffersizeoftheringbuffer*@returntheaddressofthenewringbuffer,NULLforerror.*/RING_BUF…

    2022年9月10日
    0
  • 最好用的五个黑科技搜索引擎推荐

    最好用的五个黑科技搜索引擎推荐一.数据搜:http://data.chongbuluo.com/「数据搜」这个网站就是搜索一些热词和数据指数的,包括百度指数、阿里指数、微博指数、微信指数、搜狗指数等等。当然,还有一些汽车数据、腾讯大数据、票房数据相关数据查询网站。估计很多人经常用的也就只有「百度指数」了,主要统计一下网站的流量等等。大部分人可能都不太用得上,但是对于喜欢追热点的人来说,用处还是蛮大的,毕竟,现在很多…

    2022年5月10日
    307
  • 一致性hash算法 java实现_信息的一致性

    一致性hash算法 java实现_信息的一致性介绍一致性Hash算法是实现负载均衡的一种策略,后续会写如何实现负载均衡一致哈希是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对K/n个关键字重新映射,其中K是关键字的数量,n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。强哈希考虑到单服务器不能承载,因此使用了分布式架构,最初的算法为hash()modn,hash()通常取用户ID,n为节点数。此方法容易实现且能够满足运营要求。缺点是当单点发

    2022年9月27日
    0
  • android游戏开发引擎_android开源app

    android游戏开发引擎_android开源app转自:http://blog.csdn.net/cping1982/article/details/5788921

    2022年9月19日
    0
  • gps运用了什么原理_北斗和gps频段区别

    gps运用了什么原理_北斗和gps频段区别GPS入门知识。

    2025年7月6日
    0

发表回复

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

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