【发布时间】:2018-11-21 16:52:07
【问题描述】:
/* site navigation bar */
nav.sitenavigation {
position: sticky;
top: 0;
clear: both;
text-align: center;
color: #000000;
font-size: 1.4em;
background-color: #f0f8ff;
margin: 50px auto;
}
nav.sitenavigation p {
display: inline-block;
margin: 0.5em;
padding-right: 5em;
}
nav.sitenavigation a:link,
nav.sitenavigation a:visited {
text-decoration: none;
color: #000000;
}
nav.sitenavigation a:hover,
nav.sitenavigation a:focus {
color: #33cc00;
}
p{
margin: 2000px;
}
<body>
<div>
<nav class="sitenavigation">
<p><a href="index.html">🏠 Home</a></p>
<p><a href="listing.html">📖 Item Listing</a></p>
<p><a href="order.html">🛒 Your Order</a></p>
<p><a href="contactus.html">☎ Contact Us</a></p>
</nav>
</div>
<p>ABC
</p>
</body>
我尝试了很多方法来让我的导航栏保持在顶部,但事实并非如此。我已将 HTML 样式重置为溢出:自动。它显示为 position: relative 而不是 position: sticky
【问题讨论】:
-
sn-p 没有说明问题。但是
position:sticky使元素只有在其父元素在屏幕上可见时才具有粘性。例如,我制作了this fiddle,它显示只要某些 div 内容可见,粘性就可以正常工作,但之后它会随着 div 向上滚动。你的情况是这样吗? -
它根本不会粘在上面。
-
去掉导航周围的 div 就可以了
-
@MrLister 在他的代码中有一个额外的 div 会产生问题,该元素粘在该 div 上,但 div 的高度也由粘性元素定义,因此没有空间粘性效应。
-
@TemaniAfif 非常感谢。这是 div 导致导航中的粘性不起作用