Центр содержимого в адаптивной навигационной панели bootstrap
У меня возникли проблемы с центрированием моего контента в навигационной панели bootstrap. Я использую bootstrap 3. Я читал много сообщений, но CSS или методы, используемые не будет работать с моим кодом! Я очень расстроен, так что это мой последний вариант. Любая помощь будет оценена!
<!DOCTYPE html>
<html>
<head>
<title>Navigation</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="css/style.css" rel="stylesheet" media="screen">
</head>
<body>
<div class="container">
<nav class="navbar navbar-default" role="navigation">
<!-- Brand and toggle get grouped for better mobile display -->
<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>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Separated link</a></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
<h1>Home</h1>
</div>
<!--JAVASCRIPT-->
<script src="js/jquery-1.10.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
10 ответов:
Я думаю, что это то, что вы ищете. Вам нужно удалить
float: left
от внутренней навигации, чтобы центрировать его и сделать его встроенным блоком..navbar .navbar-nav { display: inline-block; float: none; vertical-align: top; } .navbar .navbar-collapse { text-align: center; }
Edit: если вы хотите, чтобы этот эффект происходил только тогда, когда навигатор не свернут, окружите его в соответствующем медиа-запросе.
@media (min-width: 768px) { .navbar .navbar-nav { display: inline-block; float: none; vertical-align: top; } .navbar .navbar-collapse { text-align: center; } }
в исходном сообщении спрашивалось, как центрировать свернутую навигационную панель. Чтобы центрировать элементы на обычной навигационной панели, попробуйте следующее:
.navbar-nav { float:none; margin:0 auto; display: block; text-align: center; } .navbar-nav > li { display: inline-block; float:none; }
есть еще один способ сделать это для макетов, которые не должны помещать навигационную панель внутри контейнера и которые не требуют каких-либо переопределений CSS или Bootstrap.
просто поместите div с Bootstrap
container
класс по навигации. Это позволит центрировать ссылки внутри навигационной панели:<nav class="navbar navbar-default"> <!-- here's where you put the container tag --> <div class="container"> <div class="navbar-header"> <!-- header and collapsed icon here --> </div> <div class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <!-- links here --> </ul> </div> </div> <!-- close the container tag --> </nav> <!-- close the nav tag -->
если вы хотите, чтобы затем выровнять содержимое тела в центральную навигационную панель, вы также помещаете это содержимое тела в Bootstrap
container
тег.<div class="container"> <! -- body content here --> </div>
не каждый можно использовать этот тип макета (некоторые люди должны вложить сам navbar внутри
container
). Тем не менее, если вы можете это сделать, это простой способ получить ваши ссылки navbar и тело по центру.вы можете увидеть результаты в этом fullpage JSFiddle: http://jsfiddle.net/bdd9U/231/embedded/result/
источник: http://jsfiddle.net/bdd9U/229/
этот код работал для меня
.navbar .navbar-nav { display: inline-block; float: none; } .navbar .navbar-collapse { text-align: center; }
С официального сайта bootstrap (и, почти, как сказал Эрик С. Буллингтон.
https://getbootstrap.com/components/#navbar-default
пример navbar выглядит так:
<nav class="navbar navbar-default"> <div class="container-fluid"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> ...etc
чтобы центрировать навигатор, вот что я сделал:
<div class="container-fluid" id="nav_center">
css:
@media (min-width:768px) { /* don't break navbar on small screen */ #nav_center { width: 700px /* need to found your width according to your entry*/ } }
работа с классом= "контейнер" и navbar-справа или слева, и, конечно, вы можете заменить id на класс. : D
обновить 2018
Bootstrap 4
центрирование содержимого Navbar проще-это Bootstrap 4, и вы можете увидеть много сценариев центрирования, описанных здесь:https://stackoverflow.com/a/20362024/171456
Bootstrap 3
еще один сценарий, который, похоже, еще не получил ответа, центрируется и the брэнд и navbar links. Вот решение..
.navbar .navbar-header, .navbar-collapse { float:none; display:inline-block; vertical-align: top; } @media (max-width: 768px) { .navbar-collapse { display: block; } }
http://www.codeply.com/go/1lrdvNH9GI
Также см.: начальной загрузки navbar с левой, центральной или правой элементы выровнены
похоже, что все эти ответы включают пользовательский css поверх bootstrap. Ответ, который я предоставляю, использует только bootstrap, поэтому я надеюсь, что он будет использоваться для тех, кто хочет ограничить настройки.
Это было проверено с Bootstrap V3.3. 7
<footer class="navbar-default navbar-fixed-bottom"> <div class="container-fluid"> <div class="row"> <div class="col-xs-offset-5 col-xs-2 text-center"> <p>I am centered text<p> </div> <div class="col-xs-5"></div> </div> </div> </footer>
V4 BootStrap добавляет Центр (justify-content-center) и выравнивание по правому краю (justify-content-end) в соответствии с: https://v4-alpha.getbootstrap.com/components/navs/#horizontal-alignment
<ul class="nav justify-content-center"> <li class="nav-item"> <a class="nav-link active" href="#">Active</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item"> <a class="nav-link disabled" href="#">Disabled</a> </li> </ul>
использовать следующий html
<link rel="stylesheet" href="app/components/directives/navBar/navBar.scss"/> <nav class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <!-- Collect the nav links, forms, and other content for toggling --> <ul class="nav navbar-nav"> <li><h5><a href="#/">Home</a></h5></li> <li>|</li> <li><h5><a href="#products">About</a></h5></li> <li>|</li> <li><h5><a href="#">Contacts</a></h5></li> <li>|</li> <li><h5><a href="#cart">Cart</a></h5></li> </ul> </div><!-- /.container-fluid --> </nav>
и css
.navbar-nav { width: 100%; text-align: center; } .navbar-nav > li { float: none; display: inline-block; } .navbar-default { background-color: white; border-color: white; } .navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:hover, .navbar-default .navbar-nav>.active>a:focus{ background-color:white; }
изменить в соответствии с вашими потребностями