我有一个带有自举固定导航栏(example here)的网站,并注意到,在iPhone上使用Chrome时,导航栏在快速滚动时会从屏幕顶部分离几个像素。这在以下屏幕截图中显示,来自bootstrap navbar示例页面:
这只发生在iPhone上的Chrome上,而不是iPad或我测试过的任何Mac / PC上。它也发生在我能找到的固定导航栏的每个网站上。我唯一能想到的是将导航栏的背景颜色扩展到浏览器顶部之上,这样当导航栏最终被拉下时,它就不会完全与屏幕分离。但是,这仍然会导致导航栏的内容被拉下来,当然看起来像是一个肮脏的修复。
有没有其他人遇到过这个问题,是否有任何已知的修复程序?
我用一种棘手的方法来弥补这个差距, 我设置padding-top:100px到nav,然后margin-top:-100px, 所以当它再次发生时,间隙将由填充顶部填充。
它到目前为止工作正常,希望这也可以帮助你。
好的,所以我遇到了同样的问题,在chrome中的<body>
的整个内容之前有一个空格,最终找到的解决方案?我在文档的开头有一个空格' '
符号,在<!DOCTYPE html>
标记之前,删除它修复了所有内容。
无法相信。
这不是一个解决方案,但在元素上方添加一个白条将通过防止内容峰值来改善这种情况:
.fixed-header:after {
content: '';
position: fixed;
top: -20px;
height: 20px;
width: 100%;
background-color: #fff; // whatever your nav background color is
}
大约一周前遇到了同样的问题。我正在使用Bootstrap并在iPhone上的谷歌浏览器中发现了这个问题。尝试将<div class="wrapper"></div>
放在固定到顶部导航栏之外的所有内容周围。完成后,使用以下CSS为您的页面设置样式:
body, html {
width: 100vw;
height: 100%;
overflow-x: hidden !important;
display: block;
margin: 0;
padding: 0;
}
body {
background-color: white;
overflow-x: hidden !important;
width: 100vw;
display: block;
}
html {
overflow-x: hidden !important;
width: 100vw;
display: block;
}
.wrapper {
-webkit-overflow-scrolling: touch;
overflow-y: scroll;
overflow-x: hidden !important;
height: 100vh;
width: 100vw;
}
.navbar {
height: 70px;
width: 100%;
position: absolute;
background-color: indigo;
}
编辑:谷歌已经修复了这个,所以这不再是一个问题。感谢上帝!