我在我的网站上使用bootstrap,我有导航栏固定顶部的问题。当我只是使用常规导航栏时,一切都很好。然而,当我尝试将它切换到导航栏固定顶部时,网站上的所有其他内容都向上移动,就像导航栏不存在一样,导航栏重叠了它。以下是我的基本思路:

.navbar.navbar-fixed-top
  .navbar-inner
    .container
.container
  .row
    //yield content

我试图复制bootstrap的例子,但仍然有这个问题,只有当使用导航栏固定顶部。我做错了什么?


当前回答

你所要做的就是

@media (min-width: 980px) { body { padding-top: 40px; } } 

其他回答

正如其他人所说,在身体上加一个衬垫非常有用。 但是当你把屏幕调窄(和手机宽度一样)时,导航栏和机身之间就会有一个间隙。此外,拥挤的导航栏可以被包装成多行栏,再次覆盖一些内容。

这为我解决了这些问题

body { padding-top: 40px; }
@media screen and (max-width: 768px) {
    body { padding-top: 0px; }
}

这使得一个40px的默认填充和0px的宽度低于768px(根据bootstrap的文档是手机布局的分割,在那里将产生的差距)

你的答案就在文件里

需要填充身体 固定的导航条将覆盖你的其他内容,除非你在<body>的顶部添加padding。尝试您自己的值或使用下面的代码片段。提示:默认情况下,导航栏的高度为50px。 Body {padding-top: 70px;} 确保在核心引导CSS之后包含它。

在Bootstrap 4文档中…

固定导航条使用位置:固定,意味着它们从 DOM的正常流程,可能需要自定义CSS(例如,填充顶部 上),以防止与其他元素重叠。

Bootstrap 3。+,我会使用以下CSS来修复导航栏-固定顶部和锚跳重叠的问题 https://github.com/twbs/bootstrap/issues/1768

/* fix fixed-bar */
body { padding-top: 40px; }
@media screen and (max-width: 768px) {
  body { padding-top: 40px; }
}

/* fix fixed-bar jumping to in-page anchor issue */
*[id]:before { 
  display: block; 
  content: " "; 
  margin-top: -75px; 
  height: 75px; 
  visibility: hidden; 
}

你所要做的就是

@media (min-width: 980px) { body { padding-top: 40px; } } 

我只是包装了导航栏在一个

<div width="100%">
<div class="nav-? ??">
...
</nav>
</div>

没有什么花哨的把戏,但它奏效了。