Twitter Bootstrap - 阻止页面顶部内容的顶部导航栏

Gee*_*Out 287 css twitter-bootstrap

我有这个Twitter Bootstrap代码

  <div class='navbar navbar-fixed-top'>
    <div class='navbar-inner'>
      <div class='container'>
        <a class='btn btn-navbar' data-target='.nav-collapse' data-toggle='collapse'>
          <span class='icon-bar'></span>
          <span class='icon-bar'></span>
          <span class='icon-bar'></span>
        </a>
        <div class='nav-collapse'>
          <ul class='nav'>
            <li class='active'>
              <a href='some_url'>My Home</a>
            </li>
            <li>
              <a href='some_url'>Option 1 </a>
            </li>
            <li>
              <a href='some_url'>Another option</a>
            </li>
            <li>
              <a href='some_url'>Another option</a>
            </li>
          </ul>
        </div>
      </div>
    </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

但是当我查看页面的开头时,导航栏会阻止页面顶部附近的一些内容.如果在查看页面顶部时如何降低其余内容,以便内容不会被导航栏阻止,是否有任何想法?

Spa*_*jus 360

如果您使用响应式引导程序,那么添加这样的填充是不够的.在这种情况下,当您调整窗口大小时,您将在页面顶部和导航栏之间产生间隙.一个合适的解决方案如下:

body {
  padding-top: 60px;
}
@media (max-width: 979px) {
  body {
    padding-top: 0px;
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 更简洁:@media(min-width:981px){body {padding-top:60px; }} (27认同)
  • 完善.这应该以某种方式真正集成到引导程序中.您应该分叉并提交拉取请求. (18认同)
  • @Ted对我来说它必须是最小宽度:980px ;-) (4认同)
  • @white_gecko哈哈.是的.980想要只是一个额外的特别独特;-) (3认同)

Aku*_*uta 237

添加到您的CSS:

body { 
    padding-top: 65px; 
}
Run Code Online (Sandbox Code Playgroud)

Bootstrap文档:

固定导航栏将覆盖您的其他内容,除非您在主体顶部添加填充.

  • 请参阅@Spajus下面的其他答案,了解如何为响应式Bootstrap编写代码 (11认同)
  • 与@media(min-width:980px){body {padding-top:60px; {body {padding-top:60px; }} (4认同)
  • 虽然其他答案确实更有说服力,但这是官方答案,如固定导航栏的Bootstrap文档中所述[link](http://getbootstrap.com/components/#navbar-fixed-top) (3认同)

gtr*_*rak 141

对于bootstrap 3,除非您需要导航栏始终可见,否则该类navbar-static-top不会navbar-fixed-top阻止此问题.

  • 我尝试了一切,这是唯一有效的答案.因为这是最通用的解决方案,并且不依赖于屏幕大小,所以这应该是正确的答案. (9认同)
  • 然而,这可能会在导航栏上方留出一些空间.您可能需要修改site.css并从body中删除padding-top 80px. (2认同)
  • 虽然这有效,但它使导航栏静态而不是固定的。这意味着当您向下滚动时,导航栏将消失......至少对我来说这不好。 (2认同)

cat*_*sky 60

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

改变你的第一个'div'

<div class='navbar navbar-fixed-top'>
Run Code Online (Sandbox Code Playgroud)

<div class="navbar navbar-default navbar-static-top">
Run Code Online (Sandbox Code Playgroud)

  • 滚动时静态导航栏消失. (25认同)

Ara*_*yan 17

我正在使用jQuery来解决这个问题.这是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);        
});
Run Code Online (Sandbox Code Playgroud)

  • 我在导航栏上使用了一个图像,并且隐藏了内容的实际问题.这非常有效!谢谢! (2认同)
  • 非常感谢你的解决方案.这个答案对我来说就像一个魅力:)我想补充一点.加载页面时,在自动调整自身之前,正文设置为顶部,因为jquery不会立即运行.为了使它更顺畅,我在CSS body中添加了这个{padding-top://导航栏的初始高度; 这有助于顺利过渡!再次感谢你! (2认同)

Jas*_*ler 9

我在真正的固定导航栏之前创建了一个虚拟的非固定导航栏,取得了很大的成功.

<nav class="navbar navbar-default"></nav> <!-- Dummy nav bar -->
<nav class="navbar navbar-default navbar-fixed-top"> <!-- Real nav bar -->
    <!-- Nav bar details -->
</nav>
Run Code Online (Sandbox Code Playgroud)

所有屏幕尺寸的间距都很大.

  • 绝望.绝望和反复试验. (2认同)
  • 我一开始以为这就是答案,并准备投赞成票。但后来我意识到,当尺寸变得足够窄以使其堆叠菜单按钮时,它不起作用。:-( (2认同)

小智 7

在我从MVC 5教程派生的项目中,我发现更改正文填充没有任何效果.以下对我有用:

@media screen and (min-width:768px) and (max-width:991px) {
    body {
        margin-top:100px;
    }
}
@media screen and (min-width:992px) and (max-width:1199px) {
    body {
        margin-top:50px;
    }
}
Run Code Online (Sandbox Code Playgroud)

它解决了导航栏折叠成2或3行的情况.这可以在行身体{margin:0;之后的任何地方插入bootstrap.css }


Mar*_*ger 5

bootstrap v4 入门模板css使用:

body {
  padding-top: 5rem;
}
Run Code Online (Sandbox Code Playgroud)