ios - CSS 位置 : fixed in iOS 9 iPhone 6+ in landscape mode 的问题

标签 ios css media-queries iphone-6-plus

在以下情况下,我发现我的固定 header 有一个奇怪的问题:

  1. iphone 6+,横向模式
  2. safari,至少打开两个标签页
  3. 我的页面有一个 position: fixed header 和一个 body 和 html with position: relative, height: 100%

页面加载后向下滚动时,一切正常,标题就位,网络检查器正确显示:

enter image description here enter image description here

但是当您向上滚动并将页面拉下屏幕并释放时,页眉在页面上仍然可见,但实际上它已移动到视口(viewport)下方的某个位置(请参阅网络检查器未突出显示它)。

enter image description here

这一事实导致所有标题元素都无法访问:您无法打开菜单、单击 Logo 或联系按钮。

标题在以下情况下恢复正常:

  1. 你向下滚动(但当你向上滚动时再次中断)
  2. 切换到另一个标签并返回
  3. 或关闭其他标签

我尝试更改 header 和正文的 DOM 或/和 CSS,但没有任何方法可以使 header 恢复正常状态。

关于如何修复它有什么想法吗?

最佳答案

我很抱歉成为坏消息的使者,但我不知道你的实际问题是什么,因为你没有发布实际代码。但是,我猜想由于您的问题是 position:fixed,解决它的最佳方法是停止使用 position:fixed,因为它似乎不适合您.以下是如何仅使用绝对和相对定位同样流畅地模拟它:

<html id="eHTML">
<style>
#eHTML { position: static }
#eBODY { position: relative; overflow:hidden }
#eHTML, #eBODY, #main { width: 100%; height: 100%; margin: 0; top: 0 }
#eBODY>div { position:absolute; left:0;bottom:0 }
#footer {height: 20%;background-color:#88f;width:calc(100% - 14px)/*to account in for 14px scrollbar*/;overflow:hidden}
#main {background-color:#ff8;width:100%;height:100%;overflow:auto}
</style>
<body id=eBODY>
<div id=main>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
<p>Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium,</p>
<p>totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
<p>Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.</p>
<p>Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit,</p>
<p>sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.</p>
<p>Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?</p>
<p>Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur,</p>
<p>vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
<br /><br /><br /><br />
</div>
<div id="footer">
Some Random Fixed<br />
Content! Yay, it workz!
</div>
</body>
</html>

关于ios - CSS 位置 : fixed in iOS 9 iPhone 6+ in landscape mode 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35547067/

相关文章:

ios - 以编程方式设置 RGB

objective-c - 在 iOS 中通过 UIImagePickerController 加载 UIActivityIndi​​cator

asp.net - GridView 和 RowStyle 的问题

html - iframe 不调整大小

css - 在 css div 中使用@media 时消失

ios - 我们可以在通知内容扩展中使用 UICollectionView 吗?

iPhone,试图解决错误 -46,域 NSOSStatusErrorDomain

javascript - 通过 javascript 添加类时 CSS3 转换不起作用

html - 更改html表格中表格单元格的高度

html - 关于如何使搜索栏响应的建议