Как растянуть элементы навигационной панели Bootstrap, чтобы использовать всю ширину?
Рассмотрим следующую панель навигации Bootstrap:
![My custom Bootstrap navigation bar]()
Некоторые факты об этой панели навигации:
- Сама панель имеет ширину 620 пикселей (ширина страницы)
- Панель реагирует (сбойная точка останова при 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>
Ответы
Ответ 1
Вы можете использовать макет отображения таблицы CSS для распространения ваших навигационных элементов. Его хорошо поддерживается в браузерах и прост в реализации:
.navbar-nav {
display:table;
width:100%;
margin: 0;
}
.navbar-nav > li {
float:none;
display:table-cell;
text-align:center;
}
Это делает его 100% шириной его родительского #header
, который, в свою очередь, ограничен шириной #page
, поэтому, если вам нужно, чтобы он охватывал 100% всей ширины документа, вам нужно будет перемещаться это из #page
или сделать #page
шире.
http://jsfiddle.net/zBM6D/5/
Ответ 2
Основываясь на ответе @Moob, я создал суть, которая должна сделать это красиво:
https://gist.github.com/lukaszbachman/48774b74b6c4e9d0f4cb#file-navigation-stretch-css