打开虚拟键盘时,iOS 上的 Safari 会滚动到 <html> 元素之外

Safari on iOS scrolls beyond <html> element when virtual keyboard is opened

提问人:Alex Nault 提问时间:10/17/2018 最后编辑:Alex Nault 更新时间:7/15/2023 访问量:2907

问:

要尝试一下,请执行以下操作:

  1. 在 iOS(设备或模拟器)上的 Safari 12 中打开此代码笔
  2. 集中输入。虚拟键盘应打开。
  3. 现在一直滚动到页面底部。
  4. 您应该能够在元素之外过度滚动,并且 看到Safari菜单/操作栏大小的白色条纹,如下所示:<html>

demo

  1. 当您关闭虚拟键盘时,条纹会消失......

这是 Safari 的错误吗?有什么方法可以解决这个问题吗?

HTML iOS CSS Safari 移动-Safari

评论

1赞 sammiepls 10/31/2018
我一直有同样的问题!找不到解决方案...你设法修复它了吗?
1赞 Alex Nault 11/1/2018
不,很遗憾......据我了解,这听起来像是Safari本身的问题。我很惊讶这个问题没有得到更多的关注。如果你问我,它看起来很重要。
1赞 Fopedush 5/31/2022
我也遇到了这个问题,它真的让我陷入了困境。我也认为这是苹果不想承认的Safari错误。你有没有找到任何进一步的证据?有什么书面证据可以证明苹果知道这一点吗?
0赞 mb21 9/14/2023
似乎这是一个长期存在的 Safari 错误:stackoverflow.com/questions/43996535/......

答:

0赞 SamiunNafis 4/6/2023 #1

首先,您可以尝试使用 代替 .由于 和 标记未指定高度值,而高度 % 基于其父级,因此不能直接应用百分比作为高度值。所以,你可以试试height: 100vh;height: 100%

html, body {
  height: 100vh;
}

如果上述方法不起作用。您可能只是尝试隐藏身体的溢出,使用overflow: hidden;body