如何拉伸Bootstrap导航栏的元素以利用整个宽度?

时间:2014-03-07 10:45:18

标签: javascript twitter-bootstrap navbar

考虑以下Bootstrap导航栏:

My custom Bootstrap navigation bar

有关此导航栏的一些事实:

  • 条形本身宽度为620px(页面宽度)
  • 条形图是响应式的(折叠断点为640px)
  • 酒吧的元素粘在一起(两者之间没有空格)
  • 该栏具有多语言支持(元素的宽度更改)

如何拉伸条形元素以利用整个宽度?右侧剩余的空白区域应分布在条形元素中。由于每个元素具有不同的宽度,并且此宽度可能因语言而异,因此我无法使用百分比。我想唯一的解决方案是JavaScript。但我找不到任何例子......

Js Fiddle演示:http://jsfiddle.net/zBM6D/3/

<body>
    <div id="page">
        <header id="header">
            <nav class="navbar navbar-default roboto normal" role="navigation">
                <div class="container-fluid">
                    <div class="navbar-header">
                        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navigation-elements"> <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" id="navigation-elements">
                        <ul class="nav navbar-nav">
                            <li class="active"><a href="#">START</a>
                            </li>
                            <li><a href="#">THESE</a>
                            </li>
                            <li><a href="#">ARE</a>
                            </li>
                            <li><a href="#">SOME</a>
                            </li>
                            <li><a href="#">ELEMENTS</a>
                            </li>
                            <li><a href="#">WITH</a>
                            </li>
                            <li><a href="#">DIFFERENT</a>
                            </li>
                            <li><a href="#">WIDTHS</a>
                            </li>
                        </ul>
                    </div>
                </div>
            </nav>
            <div class="clear"></div>
        </header>
    </div>
</body>

2 个答案:

答案 0 :(得分:22)

您可以使用CSS表格显示布局来分发您的导航项目。其well supported across browsers并且易于实施:

.navbar-nav {
    display:table;
    width:100%;
    margin: 0;
}
.navbar-nav > li {
    float:none;
    display:table-cell;
    text-align:center;
}

这使其100%为其父#header的宽度,而#page的宽度又受#page的宽度限制,因此如果您需要它超过整个文档宽度的100%'我需要将其移出#page或使{{1}}更宽。

http://jsfiddle.net/zBM6D/5/

答案 1 :(得分:6)

根据@ Moob的回答,我创造了一个应该做得很好的要点:

https://gist.github.com/lukaszbachman/48774b74b6c4e9d0f4cb#file-navigation-stretch-css