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

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

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


当前回答

正如我在一个类似的问题中所张贴的,我已经成功地创建了一个虚拟的非固定导航栏,就在我真正的固定导航栏之前。

<nav class="navbar navbar-default"></nav> <!-- Dummy nav bar -->
<nav class="navbar navbar-default navbar-fixed-top"> <!-- Real nav bar -->
    <!-- Nav bar details -->
</nav>

这种间距在所有屏幕尺寸上都很适用。

其他回答

你的答案就在文件里

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

在Bootstrap 4文档中…

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

在nav标签中使用这个类

Class ="navbar navbar-expand-lg navbar-light bg-light sticky-top"

自举4

@Ryan,你是对的,硬编码高度会让它在自定义导航栏的情况下工作得很糟糕。这是我为BS 3.0.0愉快地使用的代码:

$(window).resize(function () { 
   $('body').css('padding-top', parseInt($('#main-navbar').css("height"))+10);
});

$(window).load(function () { 
   $('body').css('padding-top', parseInt($('#main-navbar').css("height"))+10);         
}); 

一个更方便的解决方案供您参考,它在我所有的项目中都完美无缺:

改变你的第一行

.navbar.navbar-fixed-top

to

.navbar.navbar-default.navbar-static-top

正如我在一个类似的问题中所张贴的,我已经成功地创建了一个虚拟的非固定导航栏,就在我真正的固定导航栏之前。

<nav class="navbar navbar-default"></nav> <!-- Dummy nav bar -->
<nav class="navbar navbar-default navbar-fixed-top"> <!-- Real nav bar -->
    <!-- Nav bar details -->
</nav>

这种间距在所有屏幕尺寸上都很适用。