导航栏固定到顶部但不是全宽

时间:2012-09-24 19:27:25

标签: twitter-bootstrap

使用2.1.1 Twitter Bootstrap,我正在尝试创建一个固定在页面顶部但全宽的导航栏:

<div class="container">
  <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container">
        <a class="brand" href="#">Project name</a>
        <div class="nav-collapse collapse">
          <ul class="nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#about">About</a></li>
            <li><a href="#contact">Contact</a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </div>
  </div>
</div>

如果我删除了navbar-fixed-top类:

  <div class="navbar navbar-fixed-top">

  <div class="navbar">

然后导航栏最终看起来像我想要的那样 - 只有940px宽而不是全宽 - 但当然它不再固定在页面顶部。如何将此导航栏固定在页面顶部而不使其成为全宽?

5 个答案:

答案 0 :(得分:6)

您可以创建导航栏固定顶部或导航栏固定底部,而不会使其变为全宽并响应任何屏幕尺寸。

第1步:添加那些css :(我创建一个名为.navbar-fixed-width的css类)

@media all and (min-width: 768px) {
  .navbar-fixed-width {
    width: 768px;
    margin-left: auto;
    margin-right:auto;
 }
}

@media all and (min-width: 992px) {
  .navbar-fixed-width {
    width: 992px;
    margin-left: auto;
    margin-right:auto;
  }

}

@media all and (min-width: 1200px) {
  .navbar-fixed-width {
    width: 1200px;
    margin-left: auto;
    margin-right:auto;
  }
}

第2步:.navbar-fixed-width类导航,如下所示。

<div class="navbar navbar-inverse navbar-fixed-top navbar-fixed-width" role="navigation">
    <div class="container">
         <div class="navbar-header">
         </div>
    </div>
</div>

答案 1 :(得分:5)

您可以通过将Bootstrap设置为固定来覆盖Bootstrap的定位 - 如果您不希望它与页面一起滚动,请使用absolute

.navbar {
    position: fixed !important;
    top: 0px;
    width: 940px;
}

(如果您打算使用多个导航栏,请考虑给它一个ID)

答案 2 :(得分:2)

您可以使用原始标记并简单地设置样式(使用“navbar”类到您需要的宽度:

.navbar {
width: 50%;
}

<div class="container">
  <div class="navbar navbar-fixed-top">

请参阅此处的教程:

http://www.webdesignforbeginners.info/bootstrap-simple-navbars/

答案 3 :(得分:0)

Bootstrap 3+应该能够处理动态宽度,如果您将导航栏包裹在div class container的{​​{1}}中,则宽度将是动态的,具体取决于可用空间

详细了解Bootstrap css container部分,了解更多详情。

答案 4 :(得分:0)

对于Tommy Nguyen解决方案较少。

.navbar-fixed-width {
  margin-left: auto;
  margin-right: auto;

  @media all and (min-width: @screen-sm-min) {
    width: @screen-sm-min;
  }

  @media all and (min-width: @screen-md-min) {
    width: @screen-md-min;
  }

  @media all and (min-width: @screen-lg-min) {
    width: @screen-lg-min;
  }
}