强制导航栏不与页内导航内容重叠
Force navbar to not overlap content on in-page navigation
我有一个带有 navbar
和一些内容的简单网页。
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a id="about" href="#first">First section</a></li>
<li><a id="about" href="#second">Second section</a></li>
</ul>
</div>
<div class="container body-content">
<div class="row">
<div class="col-md-12">
<img alt="this should be my image" />
<h3 id="first">The first section</h3>
<p>... content ...</p>
<h3 id="second">The second section</h3>
<p>... content ...</p>
</div>
</div>
</div>
navbar
link 到同一页面中的部分。每当单击 link 时,页面都会滚动到目标元素,但内容会被 navbar
重叠。具体来说,如果单击第一部分的 link (First
),页面将滚动到第一个 h3
元素,但该元素实际上呈现在 navbar
元素下方这怎么能解决?有关详细信息,请参阅 fiddle -- 降低结果面板的高度以更好地查看问题。
一个 CSS 唯一的解决方案是将 padding
添加到 h3
id
和一个否定的 margin
以删除多余的空格。例如:
#first, #second {
padding-top: 200px;
margin-top: -200px;
}
我有一个带有 navbar
和一些内容的简单网页。
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a id="about" href="#first">First section</a></li>
<li><a id="about" href="#second">Second section</a></li>
</ul>
</div>
<div class="container body-content">
<div class="row">
<div class="col-md-12">
<img alt="this should be my image" />
<h3 id="first">The first section</h3>
<p>... content ...</p>
<h3 id="second">The second section</h3>
<p>... content ...</p>
</div>
</div>
</div>
navbar
link 到同一页面中的部分。每当单击 link 时,页面都会滚动到目标元素,但内容会被 navbar
重叠。具体来说,如果单击第一部分的 link (First
),页面将滚动到第一个 h3
元素,但该元素实际上呈现在 navbar
元素下方这怎么能解决?有关详细信息,请参阅 fiddle -- 降低结果面板的高度以更好地查看问题。
一个 CSS 唯一的解决方案是将 padding
添加到 h3
id
和一个否定的 margin
以删除多余的空格。例如:
#first, #second {
padding-top: 200px;
margin-top: -200px;
}