#css #twitter-bootstrap #bootstrap-5
#css #twitter-bootstrap #bootstrap-5
Вопрос:
Я создал навигационную панель с помощью bootstrap. Я хочу, чтобы две кнопки были выровнены по правому краю, но независимо от того, к чему я применяю justify-content-end , это не работает.
Я понимаю, что d-flex необходимо будет применить к контейнеру, а затем justify-content-end к элементам по мере необходимости, но используя эту логику (применяя ее к div панели навигации), это не работает.
вот codepen: https://codepen.io/MH092/pen/xxXwzVY
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand pr-5" href="#">40k QuickLore</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown"
aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse d-flex pl-1" id="navbarNavDropdown">
<ul class="navbar-nav">
<li class=" nav-item">
<a class="nav-link pr-5" href="#">WTF is 40k</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Imperium
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Xenos
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Misc
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
<nav class="navbar navbar-light">
<form class="form-inline">
<button class="btn btn-outline-success" type="button">RIGHT ME</button>
<button class="btn btn-outline-success" type="button">RIGHT ME</button>
</form>
</nav>
Комментарии:
1.Проблема в том, что у вас
form
внутри<li class="nav-item dropdown">
очень маленькая ширина. Дайте этоwidth:100%
. Также дайте<form class="form-inline">
width:100%; justify-content: flex-end;
.2. Если вы создадите вторую
<ul class="navbar-nav">
и добавитеml-auto
в класс, это может сработать. Я действительно думаю, что вы добавляете проблемы, связанные с покупкойnav
внутриnav
.3. Вам не хватает нескольких закрывающих символов. Я бы также предложил не включать навигацию внутри вашей навигации. Вот пересмотренный codepen с изменениями только в его html: codepen.io/maggiecody/pen/poWjZmG
4. @MaggieCody Спасибо, это отлично работает!
5. @JKK Нет проблем!
Ответ №1:
Вы можете добавить display: flex;
к себе класс nav-item, и ваши «правильные» div будут справа.
Но если вы хотите, чтобы они были в самом правом углу, вам нужно немного изменить структуру DOM, потому что «right me» находятся в li
теге, который не является их правильным местом.
Я думаю, у вас должна быть такая структура:
а затем добавьте justify-content: space-between;
к своему родительскому
Ответ №2:
Вам не хватает нескольких закрывающих </li>
тегов. Я бы также предложил не включать a nav
внутри вашего nav
. Вот пересмотренный codepen с изменениями только для вашего html: codepen.io/maggiecody/pen/poWjZmG .