javascript - iOS 浏览器 : For a overlay like a pop up menu 100vh does not work correctly and gets hidden under the 44px pixel high menu bar of safari

标签 javascript html css safari cross-browser

问题是 100vh 在 iOS Safari 中没有正确处理。它错误地计算了到 safari 菜单栏底部的高度 [在底部],并将弹出菜单渲染到菜单栏的下边缘。这导致菜单被部分隐藏并产生问题是使用 100vh 为跨设备设计一个可滚动的弹出菜单。 details here | more details here

因此希望找到不使用 100vh 的替代解决方案,使其适用于所有浏览器和平台。

最佳答案

我通过将菜单高度设置为 window['innerHeight'] + 'px' 而不是使用 100vh 解决了这个问题。

然后我随着浏览器大小的变化更新高度[下面的伪代码]

addEventListener('resize', () => menu.style.height = window['innerHeight'] + 'px');

这适用于所有浏览器和移动设备。

关于javascript - iOS 浏览器 : For a overlay like a pop up menu 100vh does not work correctly and gets hidden under the 44px pixel high menu bar of safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54141775/

相关文章:

html - div contenteditable 和 span 元素的自动换行

html - 如何使用 CSS 添加子子菜单

javascript - 使用 Visual Studio 进行 html+css+javascript 开发

jquery - 您可以为一组 div 创建彩盒幻灯片吗?

javascript - 使用 jqGrid 的客户端分页

javascript - 使用 JQuery 以不同的方式设置每个 <li> 的样式

css - 如何检查谷歌字体加载时间

html - Bootstrap3 - 5 列桌面平板电脑并在移动设备中堆叠在一个表单内

javascript - 未获取数组的值,但数组存在 - JS

javascript - Laravel 如何通过单击按钮在 <li> 中获取值并将值发送到 Controller