100vh问题及解决方案

100vh 问题通常出现在移动端浏览器中,尤其是当你使用 100vh 设定元素高度时。这是因为移动端浏览器在显示视口高度时会包括地址栏和工具栏,这些栏在滚动时会隐藏,从而导致视口高度发生变化,影响布局。

具体问题

  1. 高度不稳定:使用 100vh 的元素在移动端可能会在用户滚动页面时突然变大或变小,影响用户体验。
  2. 滚动时视口变化:地址栏和工具栏的显示/隐藏会导致页面布局不断调整,出现闪烁或布局错误。

解决方法

  1. 使用 100% 高度
    在某些情况下,可以使用 height: 100% 而不是 100vh 来确保元素高度始终是其父元素的高度。这要求父元素的高度是明确定义的。

    html, body {height: 100%;
    }.element {height: 100%;
    }
    
  2. 使用 JavaScript 计算视口高度
    使用 JavaScript 来动态设置高度,排除地址栏和工具栏的影响。

    function setViewportHeight() {let vh = window.innerHeight * 0.01;document.documentElement.style.setProperty('--vh', `${vh}px`);
    }window.addEventListener('resize', setViewportHeight);
    window.addEventListener('orientationchange', setViewportHeight);
    setViewportHeight();
    

    然后在 CSS 中使用自定义属性 --vh

    .element {height: calc(var(--vh, 1vh) * 100);
    }
    
  3. 使用环境变量 env(safe-area-inset-bottom)
    适用于 iOS Safari,可以考虑使用 env(safe-area-inset-bottom) 来设置安全区域。

    .element {height: calc(100vh - env(safe-area-inset-bottom));
    }
    
  4. 使用dvh单位(较新浏览器兼容)

    .element {height: 100dvh;
    }
    

通过这些方法,你可以更好地处理 100vh 在移动端的问题,确保布局在不同设备和浏览器中保持一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/21597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++数据结构之:堆Heap

摘要: it人员无论是使用哪种高级语言开发东东,想要更高效有层次的开发程序的话都躲不开三件套:数据结构,算法和设计模式。数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合&am…

【Qt】win10,QTableWidget表头下无分隔线的问题

1. 现象 2. 原因 win10系统的UI样式默认是这样的。 3. 解决 - 方法1 //横向表头ui->table->horizontalHeader()->setStyleSheet("QHeaderView::section{""border-top:0px solid #E5E5E5;""border-left:0px solid #E5E5E5;""bord…

Python与Excel的完美结合:操作技巧与自动化应用

本文全面探讨了使用Python进行Excel操作的各种技巧和自动化应用,包括基础操作、高级数据处理、图表创建、自动化任务等。通过详细介绍Python在Excel中的应用,结合实际案例,帮助读者深入理解并掌握Python处理Excel文件的强大功能。 文章目录 P…

Matlab|【重磅】配电网故障重构/孤岛划分

目录 1 主要内容 1.1 背景 1.2 流程图 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序主要复现《基于GA_BFGS算法的配电网故障恢复性重构研究_郑海广》,采用matlab编程软件实现,依据网络结构和DG供电方式对配电网进行孤岛划分,将含…

政府窗口服务第三方评估报告如何写

撰写政府窗口服务第三方评估报告需要结构清晰、内容详实,并包含对评估过程和结果的详细描述以及改进建议。以下是第三方评估机构民安智库(第三方社会评估调研公司)给出的一个政府窗口服务第三方评估报告简单的示例: 一、封面 报…

【算法训练记录——Day24】

Day24——回溯算法Ⅰ 77.组合 今日内容: ● 理论基础 ● 77. 组合 理论:代码随想录 77.组合 思路:k层for循环,不会 回溯,将组合问题抽象成n叉树,for循环控制宽度,递归的深度控制二叉树的深度 …

CSS学习笔记之高级教程(五)

23、CSS 媒体查询 - 实例 /* 如果屏幕尺寸超过 600 像素&#xff0c;把 <div> 的字体大小设置为 80 像素 */ media screen and (min-width: 600px) {div.example {font-size: 80px;} }/* 如果屏幕大小为 600px 或更小&#xff0c;把 <div> 的字体大小设置为 30px …

c++面试(数位物联)

1.const 关健字的作用 定义常量&#xff0c;防止变量被意外修改&#xff0c;增强程序的可读性和维护性。 可以用于指针&#xff0c;声明指向常量的指针或常量指针。 2.static关健字的作用 (1)在函数内&#xff0c;用于修饰局部变量&#xff0c;使其生命周期延长到整个程序运行期…

程序员的五大职业素养,你知道吗?

程序员职业生涯的挑战与机遇 在当今这个科技日新月异的时代&#xff0c;程序员作为技术行业的中坚力量&#xff0c;其职业生涯无疑充满了无数挑战与机遇。技术的快速迭代要求他们必须不断学习新知识、掌握新技能&#xff0c;以跟上时代的步伐。同时&#xff0c;云计算、人工智…

Flask、uWSGI和Nginx在Web服务器架构中的职责

Flask、uWSGI和Nginx在Web服务器架构中的职责 Flask自带的开发服务器 当你启动一个基础版的Flask应用时&#xff1a; Flask自带一个基于Werkzeug的开发服务器。(默认监听的端口是 5000)这个服务器适用于开发和调试环境&#xff0c;但不适合用于生产环境&#xff0c;因为它在…

新能源汽车企业的图纸防泄密解决方案

今年新能源汽车行业在现在国内的发展已经趋于成熟化&#xff0c;随着小米雷军宣布进入造车行业&#xff0c;互联网大的企业都在互联网汽车中布局&#xff0c;为了给汽车消费者提供更新的安全驾驶体验&#xff0c;很多自动驾驶技术也在不断的更新换代。新能源自动驾驶汽车很显然…

学习经验分享篇(1)——怎样将示波器数据(.CSV数据)导入Matlab/Simulink中并进行FFT分析(电机控制/电力电子方向必备技能)

最近比较忙&#xff0c;没怎么更新&#xff0c;后续打算不断出一些学习贴。 1.为什么要出这篇文章&#xff1f; &#xff08;1&#xff09;我当时第一次导示波器数据进入Matlab里面的时候&#xff0c;一直疯狂报错&#xff0c;搞了好久。 &#xff08;2&#xff09;好多同学现…

一点连接千家银行,YonSuite让“银行回单”一键获取

在当今日益复杂多变的商业环境中&#xff0c;企业的资金管理变得尤为重要。传统的银行回单管理方式&#xff0c;如手动登录网银、逐一下载回单、核对信息等&#xff0c;不仅效率低下&#xff0c;而且容易出错&#xff0c;给企业的财务管理带来了极大的挑战。 然而&#xff0c;…

【Pytorch】深入Pytorch模型的训练、log、可视化

文章目录 模型训练的模板综合案例-Pytorch 官网demo优化记录日志解析日志增加tensorboard数据记录保存训练曲线模型参数可视化增加wandb数据记录模型训练的模板 综合案例-Pytorch 官网demo pytorch 官网tutorial-quickstart https://blog.csdn.net/weixin_39107270/article/de…

C# 反射为什么慢?深入解析反射性能问题

在C#编程中&#xff0c;反射&#xff08;Reflection&#xff09;是一个强大的工具&#xff0c;它允许程序在运行时获取类型信息并动态地调用类型的方法、属性等。然而&#xff0c;尽管反射提供了很高的灵活性&#xff0c;但它也带来了一个显著的性能开销。本文将深入探讨反射为…

安装 Android Studio 2024.1.1.6(Koala SDK35)和过程问题解决

记录更新Android Studio版本及适配Android V应用配置的一些过程问题。 安装包&#xff1a;android-studio-2024.1.1.6-windows.exe原版本&#xff1a;Android Studio23.2.1.23 Koala 安装过程 Uninstall old version 不会删除原本配置&#xff08;左下角提示&#xff09; Un…

LeetCode hot100-64-Y

74. 搜索二维矩阵 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a;每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;…

YOLOv5改进 | 主干网络 | 将主干网络替换为轻量化的ShuffleNetv2【原理 + 完整代码】

&#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 目标检测是计算机视觉中一个重要的下游任务。对于边缘盒子的计算平台来说&#xff0c;一个大型模型很难实现实时检测的要求。基于一系列消融…

MQ之初识kafka

1. MQ简介 1.1 MQ的诞生背景 以前网络上的计算机&#xff08;或者说不同的进程&#xff09;传递数据&#xff0c;通信都是点对点的&#xff0c;而且要实现相同的协议&#xff08;HTTP、 TCP、WebService&#xff09;。1983 年的时候&#xff0c;有个在 MIT 工作的印度小伙突发…

前端开发记录

一.Node相关 镜像&#xff1a;registry "https://registry.npmmirror.com" 二.Eslint格式检查 关闭语法格式检查