#bootstrap-4 #responsive
#bootstrap-4 #отзывчивый
Вопрос:
У меня есть панель навигации BS4, которая почти работает так, как я хочу, но не совсем.
Слева у меня есть название панели навигации, а справа — четыре ссылки.
В определенной точке останова ссылки исчезают и заменяются кнопкой гамбургера.
Панель навигации с гамбургером
Если вы нажмете на гамбургер, ссылки появятся под ним.
Гамбургер с расширенными ссылками
Это все, чего я хочу.
Однако, если вы еще больше уменьшите ширину окна, панель навигации переместится, и под логотипом появится гамбургер.
Этого я не хочу. Я хочу, чтобы гамбургер оставался там, где он есть, а логотип уменьшался в размерах (img-fluid).
Я могу добиться этого, добавив класс flex-nowrap к основному элементу панели навигации. Но тогда это вызывает другую проблему: когда вы нажимаете на гамбургер, ссылки появляются справа от него, а не внизу.
Есть ли способ остановить перенос гамбургера, при этом ссылки будут появляться под ним при нажатии на него?
Код ниже:
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
<a class="navbar-brand" href="#">
<img src="https://upload.wikimedia.org/wikipedia/commons/0/02/Stack_Overflow_logo.svg" class="img-fluid" style="max-height: 4rem" alt="Logo">
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#toggleMenu">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-end" id="toggleMenu">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link text-right" href="#">item 1</a>
</li>
<li class="nav-item">
<a class="nav-link text-right" href="#">item 2</a>
</li>
<li class="nav-item">
<a class="nav-link text-right" href="#">item 3</a>
</li>
<li class="nav-item">
<a class="nav-link text-right" href="#">item 4</a>
</li>
</ul>
</div>
</nav>
Ответ №1:
Вы можете добиться этого, установив минимальную ширину панели навигации и максимальную ширину для бренда панели навигации.
.navbar{
min-width: 255px;
}
.navbar-brand {
max-width: 65%;
}
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" rel="stylesheet"/>
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
<a class="navbar-brand" href="#">
<img src="https://upload.wikimedia.org/wikipedia/commons/0/02/Stack_Overflow_logo.svg" class="img-fluid" style="max-height: 4rem" alt="Logo">
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#toggleMenu">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-end" id="toggleMenu">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link text-right" href="#">item 1</a>
</li>
<li class="nav-item">
<a class="nav-link text-right" href="#">item 2</a>
</li>
<li class="nav-item">
<a class="nav-link text-right" href="#">item 3</a>
</li>
<li class="nav-item">
<a class="nav-link text-right" href="#">item 4</a>
</li>
</ul>
</div>
</nav>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"></script>