苹果浏览器的IOS菜单栏与屏幕下方10%的按钮发生冲突


14

我正在构建一个必须在多个平台上正常运行的Web门户。其中一个平台是IOS Safari,这是我遇到的问题。在我的代码中,我将两个浮动按钮对齐到div的底部,宽度和高度为100%。这一切都很好,并且按钮的显示效果与页面底部的显示效果完全相同。但是,当我单击按钮时,从移动浏览器的紧凑视图将切换为完整视图,并且我的按钮隐藏在底部导航栏的后面!

在用户点击屏幕底部10%时,safari mobile显示扩展菜单是否正常?如何避免这种情况?

在此gif中,您可以在IOS模拟器上看到问题: 例
如您所见,仅当按钮位于视图的下10%时,才出现问题。这只是一个普通的按钮,几位开发人员对我的代码进行了三遍检查,没有错误。


如果您列出了代码段,请对此进行标记,我们可以迁移到堆栈溢出...
bmike

我已经为Safari创建了bug,请在此处
sheerun

Answers:


5

在Mobile Safari中,这是正常现象,点击底部将显示各种浏览器选项,并相应地向上滚动网页。网页功能保持不变,因此用户在滚动按钮后仍可以点击按钮以访问其具有的任何功能。


4
感谢Patrix,我知道这很正常,但是有没有办法通过html,css或js覆盖此行为?我已经在堆栈溢出问题中发布了这个问题,但是由于它与苹果有关,因此不同的询问可能会知道一种方法
dennismuijs 2014年

1
对于此类事情,StackOverflow(甚至是Web开发人员经常在其上闲逛的SE网站)比AD(后者专注于最终用户问题)要好。由于访问浏览器控件对于用户来说是必不可少的,因此我怀疑是否有办法避免这种行为。
nohillside

链接到堆栈溢出问答吗?
本·罗伯茨

7

我想我可能已经找到了答案。将您的内容设置为具有以下样式:

  • height: 100% (允许内容填充视口并超出底部)
  • overflow-y: scroll(允许您滚动到视口下方;默认值为visible
  • -webkit-overflow-scrolling: touch (以平滑任何滚动行为)

似乎会强制Safari中的iOS菜单始终显示。这样,单击按钮实际上将起作用,而不是打开Safari菜单。希望这可以帮助!


当然,这确实可行,但是并非所有站点都可以容忍overflow-y: scroll其主要内容区域上的设置。这种hack的副作用会影响其所有子元素。为了更正确地说,这些css属性直接影响所有子元素,并强制safari菜单显示实际上是副作用。
zevdg

谢谢。尚未尝试点击屏幕底部,但是Safari令人讨厌的菜单栏没有覆盖我至少10%的设计。要添加此内容,您还需要提供每个包含元素height: 100%。对于一家从移动设备中赚钱很多的公司来说,他们的移动Web体验是可怕的。
corysimmons
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.