如何在Bootstrap 3中证明navbar-nav的合理性

时间:2013-09-29 02:31:44

标签: twitter-bootstrap twitter-bootstrap-3 navbar

我正在尝试在Bootstrap 3中证明navbar(使导航栏内容延伸)。我已将margin: 0 auto; max-width: 1000px;添加到nav*类,并尝试添加container元素作为ul的父元素。作为最后一项检查,我通过将navbar-justified添加到navbar类来完成建议in this answer的建议,但这导致所有内容都在左边拼凑而不是整个导航栏的合理性。

执行nav 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>

here is a working jsFiddle。您可能需要拉伸result框的大小才能正确显示。如果您对实际列表居中感兴趣而不将导航拉伸到全宽,请参阅David Taiaroa's jsFiddle

7 个答案:

答案 0 :(得分:65)

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

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

现场直播:http://jsfiddle.net/panchroma/2fntE/

祝你好运!

答案 1 :(得分: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;
    }
} 

答案 2 :(得分:9)

事实证明,默认情况下,所有float: left元素都有一个navbar-nav>li属性,这就是为什么它们都向左爬行的原因。一旦我添加了下面的代码,它就会使navbar居中并且不会被抬起。

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

希望这可以帮助那些希望以navbar为中心的其他人。

答案 3 :(得分:4)

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

答案 4 :(得分: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

答案 5 :(得分:0)

我知道这是一篇旧帖子,但我想分享我的解决方案。我花了几个小时试图制作合理的导航菜单。你真的不需要在bootstrap 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;
    }
}

答案 6 :(得分: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>