Прежде всего, вы не указали, как вы хотите, чтобы навигационная панель выглядела на маленьком экране, поэтому я собираюсь угадать расположение панели поиска и строки регистрации / входа в систему.
Это выглядиткак панель регистрации / входа всегда будет в верхней части панели поиска.Следовательно, контейнер, в котором они содержатся, может представлять собой flexbox, отображаемый в виде столбца.
А в остальном все просто.Свертываемая панель навигации может представлять собой flexbox, отображаемый в виде столбца на небольших экранах, но в виде строки с space-between
выравниванием содержимого.
Макет
<nav>
<a class="navbar-brand"></a>
<button class="navbar-toggler"></button>
<div class="collapse justify-content-md-between align-items-md-end">
<ul class="navbar-nav">
<a class="nav-link">Rentals</a>
<a class="nav-link">FAQ</a>
...
</ul>
<div class="d-flex flex-column align-items-md-end">
<ul class="navbar-nav small">
<a class="nav-link">Sign Up</a>
<a class="nav-link">Log In</a>
</ul>
<form>
<div class="input-group">Search</div>
</form>
</div>
</div>
</nav>
.justify-content-md-between
заставляет свертываемое изображение отображатьГлавное меню и строка регистрации / входа в систему и поиска отдельно после точки останова md. .align-items-md-end
заставляет складной объект отображать элементы, выровненные снизу после точки останова md. .align-items-md-end
на регистрацииКонтейнер / login и панель поиска заставляет их отображать их по правому краю после точки останова md, поскольку контейнер отображается в виде столбца.
![enter image description here](https://i.stack.imgur.com/okzio.png)
demo: https://jsfiddle.net/davidliang2008/rxzyh6oe/16/
Панель поиска, вход в систему и другие меню для мобильных устройств?
С предыдущим макетом, который я упоминал, вы можетеотображать столбец flex в обратном порядке в контейнере панели регистрации / входа в систему и поиска, а также в разборном виде для мобильных устройств.
Вы также можете изменить макет, чтобы он сначала работал таким же образом для мобильных устройств, а затем применить команду cus.классы Tom CSS, чтобы заставить их работать так, как вы хотите для больших экранов.Я думаю, это называется Прогрессивное продвижение ?
<nav>
<a class="navbar-brand"></a>
<button class="navbar-toggler"></button>
<div class="collapse justify-content-md-between align-items-md-end flex-md-row-reverse">
<div class="d-flex flex-column align-items-md-end flex-md-column-reverse">
<form>
<div class="input-group">Search</div>
</form>
<ul class="navbar-nav small">
<a class="nav-link">Sign Up</a>
<a class="nav-link">Log In</a>
</ul>
</div>
<ul class="navbar-nav">
<a class="nav-link">Rentals</a>
<a class="nav-link">FAQ</a>
...
</ul>
</div>
</nav>
.flex-md-row-reverse
на складной: переверните знак в контейнере и другие пункты меню на больших экранах .flex-md-column-reverse
при входе в контейнер: переверните контейнер регистрации / входа и панель поиска на больших экранах
![enter image description here](https://i.stack.imgur.com/KGGQa.png)
демо: https://jsfiddle.net/davidliang2008/rxzyh6oe/37/