我目前遇到了哈希锚链接的棘手问题。 这里是我的HTML代码的简单表示:如何避免在哈希标签上滚动点击固定高度内容
<div class="main-wrap">
<header></header>
<aside>
<nav>
<ul>
<li><a href="#article1">Article1</a></li>
<li><a href="#article2">Article2</a></li>
<li><a href="#article3">Article3</a></li>
</ul>
</nav>
</aside>
<section>
<article id="article1">Content Here</article>
<article id="article2">Content Here</article>
<article id="article3">Content Here</article>
</section>
<footer></footer>
和CSS:
body{overflow: scroll;}
.main-wrap{
overflow: hidden;
position: relative;
}
header{
position: relative;
z-index: 3;
height: 10vh;
}
aside{
position: fixed;
width: 22%;
height: 84vh; /* Equal to 100vh - (header + footer)vh */
top: 10vh;
left: 0;
bottom: 6vh;
}
section{
position: relative;
min-height: 84vh; /* Equal to 100vh - (header + footer)vh */
width: 78%;
left: 22%; /* Equal to aside width*/
}
footer{
position: relative;
z-index: 3;
height: 6vh;
}
我创建了一个工具栏菜单与哈希链接有滚动导航,至于我一直在工作。但是当我点击散列的锚点时,所有元素都向前移动一点,包括页眉和页脚,并被.main-wrap
元素的overflow:hidden;
属性隐藏。另外,当我回到非哈希页面时,问题仍然在运行,除非我重新加载它。
我无法找到我如何修复它的任何线索。有任何想法吗 ?
编辑:我也使用reset.css是在body
和html
空白和边距设置为0
编辑2: 我想我知道发生了什么事情。通过点击一个锚链接,身体被迫滚动.main-wrap
股利,这就是为什么一切看起来像它已经上移。实际上.main-wrap
的overflow:hidden;
属性刚刚进一步下移,隐藏了错误的部分。
这个问题类似W/A固定头和被遮挡的锚?一种选择是:将一个类添加到具有“padding-top”值的锚点以将其向下推。或者,使用':before' psuedo-element或JS来更改元素的偏移量。可能不会直接适用于您的侧边栏问题,但也许是正确的方向:http://stackoverflow.com/questions/4086107/html-positionfixed-page-header-and-in-page-anchors .... – mc01