2015-10-30 2 views
1

Я пытаюсь равномерно распределить навигационную панель, чтобы она распространялась по всей странице, а не оставляла пробел к правой стороне, как это делается в настоящее время.CSS - Равномерно распределенная панель навигации

Как бы я смог добиться этого с помощью CSS?

HTML

<nav class="navbar navbar-default" role="navigation"> 
     <!--– Brand and toggle get grouped for better mobile display –--> 
     <div class="container"> 
     <div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"> 
     <span class="sr-only">Toggle navigation</span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     </button> 

     <!--– Collect the nav links, forms, and other content for toggling –--> 
     <div class="collapse navbar-collapse in navbar-ex1-collapse"> 
     <ul id="menu-main-menu" class="nav navbar-nav divider"><li id="menu-item-20" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-8 current_page_item menu-item-20 active"><a title="Find Your Home" href="http://localhost/radleigh/find-your-home/">Find Your Home</a></li> 
<li id="menu-item-21" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21"><a title="About Us" href="http://localhost/radleigh/about-us/">About Us</a></li> 
<li id="menu-item-22" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22"><a title="Helping You Move" href="http://localhost/radleigh/helping-you-move/">Helping You Move</a></li> 
<li id="menu-item-23" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23"><a title="News" href="http://localhost/radleigh/news/">News</a></li> 
<li id="menu-item-24" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24"><a title="Get in Touch" href="http://localhost/radleigh/get-in-touch/">Get in Touch</a></li> 
</ul>  </div><!--– /.navbar-collapse –--> 
     </div><!--– /.container –--> 
     </div> 
    </nav> 

CSS

/* Navigation 
-------------------------*/ 
.navbar-default { 
    background-color: #002e5d; 
    border-radius: 0; 
    font-size: 18px; 
} 

#toggle-navbar { 
    display: none; 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 50px; 
    height: 100px; 
    line-height: 95px; 
    font-size: 2em; 
    font-weight: 900; 
    color: #fff; 
    text-align: center; 
    background: #ffcd00; 
} 

#toggle-navbar:hover { 
    cursor: pointer; 
} 

.navbar { 
    border-radius: 0; 
    border: none; 
    margin-bottom: 0; 
} 

.navbar-default .navbar-nav li { 
    padding: 0 32px; 
    height: 40px; 
    margin: 10px 0; 
} 

.navbar-default .navbar-nav li:not(:last-child) { 
    border-right: solid 1px #FFF; 
} 

.navbar-default .navbar-nav li a { 
    color: #FFF;  
    padding: 10px; 
} 

.navbar-default .navbar-nav li a:hover, .navbar-default .navbar-nav li a:focus { 
    color: #e8e8e8; 
} 

.navbar-collapse { 
    display: table; 
    float: right; 
    height: auto !important; 
    max-height: none; 
    overflow: hidden; 
    padding: 0; 
    position: relative; 
} 

.navbar-collapse.in { 
    overflow: hidden; 
} 

.navbar-default .navbar-toggle .icon-bar { 
    background-color: #FFF; 
} 

.navbar-default .navbar-toggle { 
    border-color: #FFF; 
} 

.navbar-default .navbar-toggle .icon-bar:hover { 
    background-color: #FFF; 
} 

.navbar-default .navbar-toggle:focus, .navbar-default .navbar-toggle:hover { 
    background-color: #1b66b2; 
} 
.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:focus, .navbar-default .navbar-nav>.active>a:hover { 
    background-color: #1b66b2; 
    color: #FFF; 
} 

.navbar .current_page_item { 
    background: #1b66b2;  
    border-right: none !important; 
    height: 60px !important; 
    margin: 0 !important; 
    font-weight: 700; 
} 

.navbar .current_page_item:not(:first-child) { 
    margin: 0 -1px !important; 
} 

.navbar .current_page_item a { 
    line-height: 40px !important; 
} 

.menu-main-menu { 
    font-size: 17px;  
} 

Я сделал jsfiddle: https://jsfiddle.net/xfj7ummm/

+0

Вы выглядите так. ** https: //jsfiddle.net/m6984whw/12/** –

ответ

2

по умолчанию стили Bootstrap не поддерживают ваше желаемое поведение, так что вы хотите, чтобы перезаписать несколько из них. Для простоты, и, чтобы предотвратить эти новые стили (потенциально) затрагивая другие элементы, я добавил id поле для вашей навигационной панели:

<div id="myNavbar" class="navbar-header"> 

Я тогда перезаписать ненужные стили с моим:

#myNavbar { 
    float: none; 
} 
#myNavbar > .navbar-collapse { 
    float: none; 
} 
#menu-main-menu { 
    float: none; 
    text-align: center; 
} 
#menu-main-menu > li { 
    float: none; 
    display: inline-block; 
} 

Как вы можете видеть в этом jsfiddle update, вкладки навигации теперь центрируются на странице.

+0

Большое спасибо! :) – nsilva

0

Чтобы равномерно распределить ваши ссылки, которые вы можете использовать display:table для navbar и display:table-cell для li, который Я бы использовал внутри медиа-запроса выше 768px, чтобы избежать изменения навигации на мобильных видовых экранах.

Также имеются некоторые мультимедийные запросы для компенсации размера шрифта и длины названий ссылок.

* У вас также есть некоторые несоответствия с вашим HTML. Ваш закрывающий div-заголовок должен быть до .navbar-collapse не после.

См. Пример фрагмента на полной странице.

.navbar.navbar-default { 
 
    background-color: #002e5d; 
 
    border-radius: 0; 
 
    font-size: 18px; 
 
} 
 
.navbar.navbar-default .navbar-nav > li > a { 
 
    color: #fff; 
 
} 
 
.navbar.navbar-default .navbar-nav > li > a:hover, 
 
.navbar.navbar-default .navbar-nav > li > a:focus { 
 
    color: #e8e8e8; 
 
} 
 
.navbar.navbar-default .navbar-nav > .active > a, 
 
.navbar.navbar-default .navbar-nav > .active > a:focus, 
 
.navbar.navbar-default .navbar-nav > .active > a:hover { 
 
    background-color: #1b66b2; 
 
    color: #FFF; 
 
} 
 
.navbar.navbar-default .current_page_item { 
 
    background: #1b66b2; 
 
    font-weight: 700; 
 
} 
 
.navbar.navbar-default .navbar-toggle .icon-bar, 
 
.navbar.navbar-default .navbar-toggle .icon-bar:hover { 
 
    background-color: #fff; 
 
} 
 
.navbar.navbar-default .navbar-toggle { 
 
    border-color: #fff; 
 
} 
 
.navbar.navbar-default .navbar-toggle:focus, 
 
.navbar.navbar-default .navbar-toggle:hover { 
 
    background-color: #1b66b2; 
 
} 
 
@media (max-width: 991px) and (min-width: 768px) { 
 
    .navbar.navbar-default .navbar-nav > li > a { 
 
    padding-left: 5px; 
 
    padding-right: 5px; 
 
    white-space: nowrap; 
 
    } 
 
} 
 
@media (min-width: 768px) { 
 
    .navbar.navbar-default .navbar-nav { 
 
    margin: 0; 
 
    display: table; 
 
    width: 100%; 
 
    } 
 
    .navbar.navbar-default .navbar-nav > li { 
 
    display: table-cell; 
 
    float: none; 
 
    padding-top: 10px; 
 
    padding-bottom: 10px; 
 
    } 
 
    .navbar.navbar-default .navbar-nav > li > a { 
 
    text-align: center; 
 
    } 
 
    .navbar-default .navbar-nav li:not(:last-child) { 
 
    border-right: solid 1px #FFF; 
 
    } 
 
    .navbar.navbar-default .navbar-header .navbar-brand { 
 
    display: none; 
 
    } 
 
} 
 
@media (max-width: 767px) { 
 
    .navbar.navbar-default { 
 
    padding-top: 10px; 
 
    padding-bottom: 10px; 
 
    } 
 
    .navbar.navbar-default .navbar-collapse { 
 
    border: none; 
 
    box-shadow: none; 
 
    } 
 
    .navbar.navbar-default .navbar-header .navbar-brand { 
 
    color: #fff; 
 
    font-size: 28px; 
 
    font-weight: bold; 
 
    } 
 
} 
 
@media (max-width: 360px) { 
 
    .navbar.navbar-default .navbar-header .navbar-brand { 
 
    font-size: 24px; 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" /> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 
 
<nav class="navbar navbar-default" role="navigation"> 
 
    <div class="container"> 
 
    <div class="navbar-header"> 
 
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-ex1-collapse" 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="http://localhost/radleigh/find-your-home/">Find Your Home</a> 
 

 
    </div> 
 
    <div class="collapse navbar-collapse navbar-ex1-collapse"> 
 
     <ul id="menu-main-menu" class="nav navbar-nav"> 
 
     <li id="menu-item-20" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-8 current_page_item menu-item-20 active"><a title="Find Your Home" href="http://localhost/radleigh/find-your-home/">Find Your Home</a> 
 

 
     </li> 
 
     <li id="menu-item-21" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21"><a title="About Us" href="http://localhost/radleigh/about-us/">About Us</a> 
 

 
     </li> 
 
     <li id="menu-item-22" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22"><a title="Helping You Move" href="http://localhost/radleigh/helping-you-move/">Helping You Move</a> 
 

 
     </li> 
 
     <li id="menu-item-23" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23"><a title="News" href="http://localhost/radleigh/news/">News</a> 
 

 
     </li> 
 
     <li id="menu-item-24" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24"><a title="Get in Touch" href="http://localhost/radleigh/get-in-touch/">Get in Touch</a> 
 

 
     </li> 
 
     </ul> 
 
    </div> 
 
    </div> 
 
</nav>

+0

thanks @vanburen - я действительно попробовал это, но он испортил границы между ссылками – nsilva

+0

Как должны быть границы? – vanburen

Смежные вопросы