【发布时间】:2021-06-27 02:00:01
【问题描述】:
我有一个粘性侧边栏,当您向下滚动主要内容时,它的工作方式与我想要的一样(它会粘在我想要的位置),但是当我到达页面底部时,由于某种原因,侧边栏会松开并不断向上滚动,使侧边栏菜单中的顶部几个项目消失在我的固定标题后面。
我认为这是由于我为粘性元素定义的 CSS 高度属性,我已将其设置为 100vh。
如何设置我的粘性侧边栏,以便当我点击页面底部时,它不会一直向上滚动?
这是我在这部分的代码,如果更简单,这里是一个URL 到网站的工作版本。
这是我的 HTML 和 CSS
/* sidebar styling */
aside {
height: 100vh;
width: 160px;
margin-left: -0.5em;
position: sticky;
z-index: 0.5;
top: 4em;
left: 0;
background-color: lightblue;
overflow-x: hidden;
}
aside a {
padding: 6px 8px 6px 16px;
text-decoration: none;
font-size: 1.25em;
color: black;
display: block;
}
aside a:hover:not(.current-menu-item) {
background-color: tan;
font-weight: bold;
}
.current-menu-item {
background-color: white;
font-weight: bold;
}
/* main content styling */
.content {
margin-left: 160px;
font-size: 28px;
padding: 0em 0.5em;
}
a.anchor {
display: block;
position: relative;
top: -75px;
visibility: hidden;
<section>
<aside>
<a class="menu-item-1" href="#target1">About</a>
<a class="menu-item-2" href="#target2">Services</a>
<a class="menu-item-3" href="#target3">Clients</a>
<a class="menu-item-4" href="#target4">Contact</a>
</aside>
<div class="content">
<a class="anchor" id="target1"></a>
<h2>Title 1</h2>
<h4>Subheading</h4>
<p>Text</p>
<h4>Subheading</h4>
<p>Text</p>
<h4>Subheading</h4>
<p>Text</p>
<a class="anchor" id="target2"></a>
<h2>Title 1</h2>
<h4>Subheading</h4>
<p>Text</p>
<h4>Subheading</h4>
<p>Text</p>
<h4>Subheading</h4>
<p>Text</p>
<a class="anchor" id="target3"></a>
<h2>Title 1</h2>
<h4>Subheading</h4>
<p>Text</p>
<h4>Subheading</h4>
<p>Text</p>
<h4>Subheading</h4>
<p>Text</p>
<a class="anchor" id="target4"></a>
<h2>Title 1</h2>
<h4>Subheading</h4>
<p>Text</p>
<h4>Subheading</h4>
<p>Text</p>
<h4>Subheading</h4>
<p>Text</p>
</div>
</section>
【问题讨论】: