47

我试图navbar在 Bootstrap 3 中证明一个(使导航栏内容伸展)是合理的。我已经添加margin: 0 auto; max-width: 1000px;nav*类中,并且还尝试将一个container元素作为父级添加到ul. 作为最后一次检查,我通过添加到课程中做了这个答案中的建议,但这导致左侧的所有内容都挤在一起而没有证明整个导航栏的合理性。navbar-justifiednavbar

做 anav nav-justified ul确实使ul中心,但它不保留navbar-nav类的样式,因为它不是 的一部分ul,并且当屏幕小于 768px 时看起来不太好。

我如何证明 Bootstrap 3 的合理性navbar

编辑:对于那些对更完整答案感兴趣的人,这里是我在生产中使用的一些代码:

// Stylesheet
.navbar-nav>li {
  float: none;
}

// Navbar
<nav class="navbar navbar-default">
  <ul class="nav nav-justified navbar-nav">
    <li><a href="/">Home</a></li>
    <li><a href="group.html">Group</a></li>
    <li><a href="services.html">Services</a></li>
    <li><a href="positions.html">Positions</a></li>
  </ul>
</nav>

是一个有效的 jsFiddle。您可能需要拉伸result框的大小才能正确显示。如果您有兴趣将实际列表居中而不将导航拉伸到全宽,请参阅David Taiaroa 的 jsFiddle

4

7 回答 7

65

您可以使用以下方法证明导航栏内容的合理性:

@media (min-width: 768px){
  .navbar-nav{
     margin: 0 auto;
     display: table;
     table-layout: fixed;
     float: none;
  }
}  

现场观看:http: //jsfiddle.net/panchroma/2fntE/

于 2013-09-29T03:08:10.167 回答
36

要将 bootstrap 3 navbar-nav justify 菜单调整为 100% 宽度,您可以使用以下代码:

@media (min-width: 768px){
    .navbar-nav {
        margin: 0 auto;
        display: table;
        table-layout: auto;
        float: none;
        width: 100%;
    }
    .navbar-nav>li {
        display: table-cell;
        float: none;
        text-align: center;
    }
} 
于 2014-02-03T11:51:25.273 回答
9

事实证明,float: left默认情况下所有navbar-nav>li元素都有一个属性,这就是为什么它们都向左移动的原因。一旦我添加了下面的代码,它就会使navbar两者居中而不是皱缩。

.navbar-nav>li {
        float: none;
}

希望这可以帮助其他希望将navbar.

于 2013-09-29T05:31:19.423 回答
4

这是一个更简单的解决方案。只需删除“navbar-nav”类并添加“nav-justified”。

于 2017-01-14T15:23:49.193 回答
1
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
 <div class="container">
<div class="navbar-header">
  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
  </button>
</div>
<div class="collapse navbar-collapse">
  <ul class="nav navbar-nav">
    <li><a href="#">Home</a></li>
    <li><a href="#about">About</a></li>
    <li><a href="#contact">Contact</a></li>  
  </ul>
</div>

对于CSS

@media ( min-width: 768px ) { 
    .navbar > .container {
        text-align: center;
    }
    .navbar-header,.navbar-brand,.navbar .navbar-nav,.navbar .navbar-nav > li {
        float: none;
        display: inline-block;
    }
    .collapse.navbar-collapse {
        width: auto;
        clear: none;
    }
}

现场观看http://www.bootply.com/103172

于 2014-03-09T18:11:03.717 回答
0

我知道这是一篇旧帖子,但我想分享我的解决方案。我花了几个小时试图制作一个合理的导航菜单。您实际上不需要修改引导 css 中的任何内容。只需要在 html 中添加正确的类。

   <nav class="nav navbar-default navbar-fixed-top">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#collapsable-1" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#top">Brand Name</a>
        </div>
        <div class="collapse navbar-collapse" id="collapsable-1">
            <ul class="nav nav-justified">
                <li><a href="#about-me">About Me</a></li>
                <li><a href="#skills">Skills</a></li>
                <li><a href="#projects">Projects</a></li>
                <li><a href="#contact-me">Contact Me</a></li>
            </ul>
        </div>
    </nav>

当屏幕达到 768px 时,此 CSS 代码将简单地删除 navbar-brand 类。

media@(min-width: 768px){
   .navbar-brand{
        display: none;
    }
}
于 2017-02-13T06:13:44.310 回答
0

嗨,您可以使用下面的代码来工作合理的导航

<div class="navbar navbar-inverse">
    <ul class="navbar-nav nav nav-justified">
        <li class="active"><a href="#">Inicio</a></li>
        <li><a href="#">Item 1</a></li>
        <li><a href="#">Item 2</a></li>
        <li><a href="#">Item 3</a></li>
        <li><a href="#">Item 4</a></li>
    </ul>
 </div>
于 2017-03-01T13:29:21.557 回答