Адаптивная панель навигации является важным элементом любого современного веб-сайта, поскольку позволяет пользователям легко перемещаться по сайту на разных устройствах. В этой статье мы рассмотрим, как создать адаптивную панель навигации с помощью HTML, CSS и JavaScript.

Для начала мы создадим структуру HTML для панели навигации. Мы будем использовать элемент nav для переноса элементов навигации и элемент ul для хранения навигационных ссылок:

<nav>
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>

Далее мы стилизуем панель навигации с помощью CSS. Мы зададим элементу nav фиксированное положение в верхней части страницы и зададим ему цвет фона:

nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background-color: #333;
}

Мы также стилизуем элемент ul, чтобы навигационные ссылки отображались горизонтально, а также придали им отступы и белый цвет текста:

nav ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

nav li {
  padding: 20px;
}
nav a {
  color: white;
  text-decoration: none;
}

Теперь, когда у нас есть основные стили, давайте сделаем панель навигации отзывчивой. Мы будем использовать медиа-запрос, чтобы изменить расположение навигационных ссылок, когда размер экрана меньше определенной ширины:

@media (max-width: 600px) {
  nav ul {
    flex-direction: column;
  }
}

Этот медиа-запрос изменит направление гибкости элемента ul на столбец, когда ширина экрана меньше 600 пикселей, в результате чего навигационные ссылки будут располагаться вертикально.

Чтобы добавить кнопку-переключатель для адаптивной навигации, мы будем использовать JavaScript для переключения класса в элементе nav при нажатии кнопки-переключателя. Мы также будем использовать CSS для оформления кнопки переключения и скрытия навигационных ссылок на маленьких экранах:

nav .toggle {
  display: none;
}

@media (max-width: 600px) {
  nav ul {
    display: none;
  }
  nav .toggle {
    display: block;
    background-color: #333;
    color: white;
    padding: 10px;
    cursor: pointer;
  }
}

Чтобы добавить кнопку-переключатель, мы создадим элемент button внутри элемента nav и присвоим ему класс toggle:

<nav>
  <button class="toggle">Toggle</button>
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>

Наконец, мы будем использовать JavaScript для переключения класса active в элементе nav при нажатии кнопки переключения:

const toggle = document.querySelector('.toggle');
const nav = document.querySelector('nav');

toggle.addEventListener('click', () => {
  nav.classList.toggle('active');
});

Затем мы можем использовать класс active в нашем CSS для отображения и скрытия навигационных ссылок:

@media (max-width: 600px) {
  nav ul {
    display: none;
  }
  nav.active ul {
    display: block;
  }
}

Благодаря этим изменениям наша панель навигации теперь полностью адаптивна и может переключать навигационные ссылки на маленьких экранах.