.navbar
использует display: flex
для позиционирования своих элементов. Это означает, что вы можете изменить их расположение или расположить их, изменив flex-direction
и justify-content
на .navbar
, но также обратите внимание на flex-grow
, flex-shrink
, flex-basis
и поля слева и справа, установленные для каждого непосредственного потомка .navbar
.
Для запуска слева направо flex-direction: row
(по умолчанию). Справа налево: flex-direction: row-reverse
.
Что касается перестановки пространства между ними и вокруг них, для любого из вышеперечисленного измените justify-content
на любой из space-between
(по умолчанию), space-evenly
, flex-end
, flex-start
, center
.
Вот пример с ними в обратном порядке и равномерно:
nav.navbar {
flex-direction: row-reverse;
justify-content: space-evenly;
}
div.navbar-collapse {
flex-grow: 0;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">LOGO HERE</a>
<button class="navbar-toggler " type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
</div>
</nav>
Примечание предостережения : гораздо больше свойств, установленных для родительского или любого из дочерних элементов, может влиять на их поведение при отображении. Некоторые из наиболее распространенных:
- установка
margin: auto
для любого ребенка украдет все положительное пространство и выделит его в этот конкретный пробел, в результате чего justify-content
будет казаться, что он не работает. Это работает, но его распределение точно 0
пространство. Если вы хотите разделить свободное пространство на несколько выбранных промежутков, поместите margin:auto
в каждый из этих промежутков, используя любой соседний элемент. - значение
flex-grow
, flex-shrink
или flex-basis
на любом из дети будут влиять на их размер и, следовательно, на распределение свободного пространства. Здесь следует отметить, что по умолчанию на некоторых интервалах реагирования .navbar-collapse
имеет flex-grow: 1
, поэтому вам нужно установить его на 0
, чтобы иметь возможность перераспределять свободное пространство. В противном случае нет свободного места.