В данном уроке мы сделаем два адаптивных меню, которые будут располагаться на одной странице и видоизменим их до вот такого вида.

- Создание одно уровневого меню с социальными иконками
- Несколько bootstrap navbar на 1 странице
- Выпадающая по клику поисковая строка
- Панели навигации
- Базовая навигационная
- Пример
- Вертикальная навигационная
- Пример
- Центрированная навигационная
- Пример
- Цветной навигационной
- Элементы меню
- Название или логотип компании
- Кнопка для открытия меню
- Блок содержимого меню
- Блок ссылок меню
- Форма внутри меню
- Текст внутри меню
Создание одно уровневого меню с социальными иконками
За основу берем стандартный bootstrap 4 navbar: getbootstrap.com/docs/4.3/components/navbar/.

Его код выкладывать не буду (можете его с оф. сайта взять), сразу выложу видоизмененный и объясню что где поправил.
Итак здесь я изменил:
- Цветовую схему меню, для этого заменил navbar-light bg-light на navbar-dark bg-dark см. getbootstrap.com/docs/4.3/components/navbar/#color-schemes
- Убрал логотип (блок navbar-brand): getbootstrap.com/docs/4.3/components/navbar/#brand
- Блок с формой form: getbootstrap.com/docs/4.3/components/navbar/#forms заменил на текстовый блок getbootstrap.com/docs/4.3/components/navbar/#text и добавил в него меню с шрифтовыми иконками.
- подключил сами иконки .
Если сейчас посмотреть в браузере, то все это добро выглядит так.

Что здесь сразу не нравится мне: выделение активного элементы, тускловатый цвет неактивных элементов, кнопки друг на друга и т.д. давайте это исправим, для этого добавим следующие css строки

Теперь давайте создадим более сложное меню и кастомизируем его, за основу берем все тоже стандартное меню и видоизменяем код под себя.
- убрал логотип (блок navbar-brand)
- у блок с формой form: getbootstrap.com/docs/4.3/components/navbar/#forms, заменил его на собственный блок
- сделал меню липким (после прокрутки чтобы прилипало к верху, для этого добавил класс sticky-top: getbootstrap.com/docs/4.3/utilities/position/#sticky-top
Если сейчас посмотреть в браузере, то меню выглядит так,

в принципе неплохо, активные элементы подхватили выше добавленный css код, но цвет ссылок активных элементов не белый а черный, по сути не работает форма поиска (она должна выпадать), в мобильном виде при клике на тоглер (кнопку открытия меню), открывается сразу 2 меню:

ну и внешний вид кнопок не особо устраивает, так же пока не работает кнопка поиска и она не должна уходить в складывающее меню, давайте поправим это.
Несколько bootstrap navbar на 1 странице
Чтобы избавится от открытия сразу 2х меню нужно изменить атрибуты data-target, aria-controls и id меню

т.е. просто переименовываем их на уникальные к примеру для верхнего меню ставим navbarTop а для второго меню navbarTop2 (либо оставляем стандартное название).
Выпадающая по клику поисковая строка
Дорабатываем поисковую строку, для этого добавляем следующий css:
и добавляем небольшой скрипт, который отвечает за открытие формы при клике
добавляем в конец документа, перед закрытием
Панели навигации
Панель навигации — это заголовок навигации, расположенный в верхней части страницы:
Базовая навигационная
С помощью Bootstrap панель навигации может расширяться или сворачиваться в зависимости от размера экрана.
Стандартная панель навигации создается с помощью .navbar класса, за которым следует адаптивный класс свертывания: (стеки навигационной панели .navbar-expand-xl|lg|md|sm по вертикали на очень больших, больших, средних или маленьких экранах).
Чтобы добавить ссылки внутри навигационной области, используйте
-
элемент с . Затем добавьте
элементы с .nav-item классом за которым следует элемент с .nav-link классом:
Пример
Вертикальная навигационная
Удалите .navbar-expand-xl|lg|md|sm класс для создания вертикальной панели навигации:
Пример
Центрированная навигационная
Добавьте .justify-content-center класс для центрирования панели навигации.
Следующий пример будет центрировать панель навигации на средних, больших и очень больших экранах. На маленьких экранах она будет отображаться по вертикали и по левому краю (из-за. навигации-развернуть-SM класса):
Пример
Цветной навигационной
Используйте любой из .bg-color классов для изменения цвета фона навигационной области (. .bg-primary .bg-success .bg-info .bg-warning .bg-danger .bg-secondary .bg-dark и .bg-light )
Совет: Добавьте белый цвет текста ко всем ссылкам в навигационной навигации с помощью .navbar-dark класса или используйте .navbar-light класс для добавления черного цвета текста.
Создание горизонтального адаптивного меню для сайта осуществляется с помощью компонента «Navbar». Компонент имеет два режима отображения:
- десктопный (обычный) — выводятся все элементы меню;
- мобильный (свёрнутый) — отображается бренд и кнопка «Гамбургер».
Режим отображения меню зависит от ширины viewport браузера. Точка перелома задается с помощью css-класса navbar-expand-
Для установки цветового оформления меню используются еще два дополнительных класса: navbar- <…>и bg- <…>. Для установки цвета фона к bg- <…>необходимо добавить любую из восьми цветовых схем — primary , secondary , dark , light , warning , danger , info , success . Класс navbar- <…>отвечает за цвет текста и поддерживает два варианта — navbar-dark и navbar-light .
Для «NavBar» не обязателен контейнер, но если необходимо ограничить ширину всего меню, то можно его обернуть в .container .
Если же нужно ограничить ширину только содержимого, а само меню отображать на всю ширину страницы, то .container следует поместить внутри .navbar .
Для позиционирования меню фреймворк предлагает три дополнительных класса:
- fixed-top — фиксирует меню в самом верху страницы;
- fixed-bottom — фиксирует меню в самом низу страницы;
- sticky-top — приклеивает меню в верху при прокрутке страницы.
Элементы меню
Компонент «NavBar» состоит из нескольких подкомпонентов, которые можно добавлять или исключать по мере необходимости.
Название или логотип компании
Кнопка для открытия меню
Имеет css-класс .navbar-toggler и предназначена для показа и скрытия содержимого меню .collapse.navbar-collapse на малениких экранах:
Блок содержимого меню
Имеет css-классы .collapse.navbar-collapse и скрывается в контрольной точке, которая задается классом navbar-expand-
Блок ссылок меню
Имеет css-класс .navbar-nav и состоит из ссылок и вложенных выпадающих списков со ссылками:
Форма внутри меню
Текст внутри меню
Класс .navbar-text — позволяет добавлять текст в меню.