.nav-wrapper{
position: absolute;
bottom: 0;
}
.nav-wrapper nav{
position: sticky;
top: 0;
}
<div class="nav-wrapper">
<nav>
<a href="#"><li>Home</li></a>
<a href="#"><li>About</li></a>
</nav>
</div>
#1 楼
position:sticky
考虑父元素的行为应有的表现。在您的情况下,父元素的高度由sticky元素定义,因此该元素没有空间具有粘性行为添加边框以更好地查看问题:
.nav-wrapper {
position: absolute;
bottom: 0;
border: 2px solid;
}
.nav-wrapper nav {
position: sticky;
top: 0;
}
body {
min-height:200vh;
}
<div class="nav-wrapper">
<nav>
<a href="#">
<li>Home</li>
</a>
<a href="#">
<li>About</li>
</a>
</nav>
</div>
现在将高度添加到父元素并查看发生了什么:
.nav-wrapper {
position: absolute;
bottom: 0;
border: 2px solid;
height:80vh;
}
.nav-wrapper nav {
position: sticky;
top: 0;
}
body {
min-height:200vh;
}
<div class="nav-wrapper">
<nav>
<a href="#">
<li>Home</li>
</a>
<a href="#">
<li>About</li>
</a>
</nav>
</div>
粘性行为很好,因为父元素上有足够的高度,可以在特定阈值后固定该元素。
粘性放置的元素是其元素计算的位置
值是粘性的。直到它的包含
的块在其流根(或其滚动的容器)内超过指定的阈值(例如将top设置为
,而不是auto的值)之前,都被视为相对定位。直到遇到
其所在块的相对边缘为止,都将其视为“卡住”。ref
评论
我相信(但不确定)该问题已被否决,因为它在4分钟前的修订之前缺少代码。但是我相信没有CSS的人就可以解决此问题:)
没有代码是没有问题可以解决的……问题源于我们需要查看代码的特定代码