Как создать меню бургер на HTML и CSS без JavaScript — подробное руководство по созданию гамбургер-меню без использования JavaScript

Меню бургер, или гамбургер-меню, — это популярный способ отображения навигации на мобильных устройствах. Обычно оно представляет собой иконку, состоящую из трех горизонтальных полосок, которая при нажатии разворачивается в вертикальное меню.

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

Первым шагом является создание HTML-разметки для нашего меню. Для этого мы используем стандартные теги <ul> и <li> для создания списка элементов меню. Каждый элемент списка будет представлять собой ссылку на определенную страницу или раздел нашего веб-сайта.

После создания HTML-разметки мы приступаем к стилизации нашего меню с помощью CSS. Мы используем псевдоэлементы <::before> и <::after> для создания иконки меню бургер. Затем мы применяем анимацию и переходы для создания плавных эффектов при навигации.

Как создать гамбургер-меню на HTML и CSS без JavaScript — пошаговое руководство

Шаг 1: Создайте структуру HTML

В первую очередь, создайте основную структуру HTML для вашего меню. Вы можете использовать тег <nav> для создания области меню, а затем внутри него разместить список элементов меню с помощью тегов <ul> и <li>. Каждому элементу меню присвойте класс или идентификатор, чтобы потом легко стилизовать их с помощью CSS.

Шаг 2: Создайте иконку «гамбургер»

Для создания иконки «гамбургер» можно использовать псевдоэлементы ::before и ::after. Добавьте класс или идентификатор для вашего иконки и установите его позицию, размер и внешний вид с помощью CSS.

Шаг 3: Скрытие основного меню

С помощью CSS вы можете скрыть основное меню по умолчанию для мобильных устройств. Для этого используйте медиа-запросы и установите свойство display: none; для контейнера меню или каждого элемента меню.

Шаг 4: Создание анимации на CSS

Для создания анимации открытия и закрытия меню используйте псевдокласс :checked и атрибут for. Создайте элемент <input type="checkbox"> и поместите его после иконки «гамбургер». Затем свяжите его атрибутом for с классом или идентификатором иконки.

При помощи медиа-запросов и CSS, установите свойство display: none; для списка элементов меню. При активации чекбокса, измените свойство display: block; для списка элементов меню, чтобы показать его в выпадающем меню.

Шаг 5: Добавление стилей

С использованием CSS вы можете добавить стили для иконки «гамбургер», основного меню и выпадающего меню. Установите стили для шрифта, цветов, фона, отступов и границ, чтобы настроить ваше гамбургер-меню в соответствии с вашим дизайном.

После завершения всех шагов, вы получите кросс-браузерное гамбургер-меню на HTML и CSS без использования JavaScript.

Шаг 1: Настройка HTML-разметки

Перед тем, как приступить к созданию меню бургер на HTML и CSS без JavaScript, нам необходимо настроить HTML-разметку для нашего меню.

Для начала, мы можем создать обертку для нашего меню, используя тег <nav>. Внутри этой обертки, мы создадим таблицу, в которой будут располагаться пункты меню. Для этого, мы используем тег <table>.

Внутри таблицы, мы будем использовать теги <tr> и <td> для создания строк и ячеек таблицы соответственно. В каждой ячейке, мы разместим ссылку на соответствующую страницу.

Например, для создания первого пункта меню, мы можем использовать следующий код:

Главная

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

После завершения HTML-разметки для меню, приступим к оформлению с помощью CSS.

Шаг 2: Создание основных стилей

Во-первых, нам нужно задать стили для основного контейнера меню. Мы можем сделать это, добавив стили для класса «.burger-menu». В этом классе мы устанавливаем ширину и высоту контейнера, устанавливаем позицию как «fixed» для фиксированного расположения меню на странице, а также центрируем его по горизонтали и вертикали.

Затем мы определяем основной стиль для кнопки бургер-меню. Мы присваиваем классу «.burger-btn» цвет фона, ширину и высоту, и добавляем некоторые стили для его позиционирования на странице.

Далее нам нужно создать стили для скрытого панели меню. Мы добавляем класс «.burger-menu__panel» и устанавливаем его ширину и высоту, устанавливаем позицию как «absolute», и задаем его цвет фона и границу.

Затем мы создаем стили для элементов меню внутри панели. Мы присваиваем класс «.burger-menu__item» и определяем его высоту, отступы, границы и фоновый цвет. Мы также добавляем стили для ссылок внутри элементов меню, устанавливая цвет текста, стили подчеркивания, отступы и размер шрифта.

И, наконец, мы задаем стили для состояния панели «открыто» и «закрыто». Для этого мы добавляем классы «.burger-menu—open» и «.burger-menu—closed» и задаем им соответствующие стили, например, изменение расположения панели, ширины, высоты и прозрачности.

Вот и все! Мы создали основные стили для нашего гамбургер-меню без использования JavaScript. Теперь можно переходить к следующему шагу — добавлению анимации с использованием CSS.

Шаг 3: Добавление иконки гамбургера

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

Для добавления иконки гамбургера мы используем псевдоэлемент ::before, который позволяет добавить контент перед содержимым элемента.

Добавьте следующий CSS-код в ваш файл стилей:

.navbar-toggler::before {
content: '';
display: block;
width: 25px;
height: 3px;
background-color: #000;
margin-bottom: 5px;
}
.navbar-toggler.open::before {
background-color: transparent;
}
.navbar-toggler.open + .navbar-collapse {
display: block;
}

В этом CSS-коде мы создаем горизонтальную полоску в качестве иконки гамбургера. Когда меню открыто, мы устанавливаем фон иконки гамбургера прозрачным, чтобы она стала крестиком. Кроме того, мы показываем меню, устанавливая свойство display: block для элемента с классом .navbar-collapse.

Шаг 4: Создание анимации при клике

Для того чтобы создать анимацию при клике на иконку бургер-меню, мы будем использовать только CSS. В CSS мы будем определять стили и анимацию, а затем применим эти стили к элементам в HTML.

Наши элементы, которые будут анимироваться, это иконка бургер-меню и само меню. Для иконки, мы можем использовать любой элемент, например или

, и применить к нему стили, определяющие его внешний вид.

Для создания анимации, мы будем использовать псевдокласс :checked и селектор +. Псевдокласс :checked позволяет нам определить стиль элемента, если связанный с ним чекбокс или радиокнопка выбрана. Селектор + позволяет нам выбрать следующий элемент после указанного селектора. Таким образом, когда мы кликаем на иконку бургер-меню, происходит изменение стилей следующего элемента, который в нашем случае это само меню.

В CSS, мы сначала создадим анимацию для появления и скрытия меню. Например, мы можем использовать анимацию с переходом (transition) или анимацию с появлением (animation). Затем, мы определим стили для иконки бургер-меню и применим одну из созданных анимаций к нужным элементам.

Вот пример CSS кода для создания анимации при клике на иконку бургер-меню:


input[type="checkbox"] {
display: none;
}
.burger-icon {
/* стили иконки бургер-меню */
}
.burger-icon:checked + .menu {
/* анимация показа меню */
}
.close-icon {
/* стили иконки закрытия меню */
}
.close-icon:checked + .menu {
/* анимация скрытия меню */
}
.menu {
/* стили меню */
}

В данном примере, мы сначала скрываем чекбокс с помощью display: none;. Затем, мы применяем стили к иконке бургер-меню .burger-icon и иконке закрытия меню .close-icon. Далее мы определяем анимацию для показа меню .burger-icon:checked + .menu и анимацию для скрытия меню .close-icon:checked + .menu. Наконец, мы определяем стили для самого меню .menu.

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

Шаг 5: Добавление адаптивности

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

Сначала, мы определим точку перелома, при которой мы хотим изменить наше меню. Например, при ширине экрана меньше 600px мы хотим, чтобы наше меню было скрытым.

Для этого мы добавим следующий CSS-код в наш файл стилей:

@media (max-width: 600px) {
.menu {
display: none;
}
.menu-toggle {
display: block;
}
}

В этом коде, мы используем медиа-запрос с селектором (max-width: 600px), который будет применяться только при ширине экрана меньше 600px. Внутри медиа-запроса, мы скрываем наше меню, устанавливая свойство display: none;, и отображаем иконку бургер-меню, устанавливая свойство display: block;.

Теперь, когда ширина экрана становится меньше 600px, наше меню будет скрытым и на его месте отобразится иконка бургер-меню.

Шаг 6: Добавление анимации для мобильной версии

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

Для создания анимации мы будем использовать ключевые кадры CSS (CSS keyframes). Начнем с создания нового правила @keyframes с именем «menuAnimation».

Пример кода:

@keyframes menuAnimation {
0% {
opacity: 0;
transform: scale(0.9);
}
100% {
opacity: 1;
transform: scale(1);
}
}

Здесь мы определили два ключевых кадра: первый (0%) задает начальное состояние элемента, а второй (100%) — конечное состояние. Мы установили значение opacity равным 0 для первого кадра, чтобы элемент был невидимым, а для второго кадра установили opacity равным 1, чтобы элемент появился полностью. Также мы добавили анимацию масштабирования (scale) для создания эффекта плавного появления.

Теперь внесем изменения в стили для нашего меню бургер, чтобы использовать эту анимацию.

Изменим стиль для класса «menu-container-mobile» следующим образом:

.menu-container-mobile {
display: block;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
animation-name: menuAnimation;
animation-duration: 0.3s;
animation-timing-function: ease-in-out;
}

Мы добавили новые свойства: animation-name для указания имени нашей анимации, animation-duration для задания продолжительности анимации (в данном случае, 0.3 секунды), и animation-timing-function для установки функции распределения времени (в данном случае, ease-in-out, чтобы создать эффект плавного появления и исчезновения).

Теперь наше меню бургер будет появляться и исчезать плавно при клике на кнопку «menu-toggle».

Шаг 7: Завершение и тестирование

В данном шаге мы можем пройти по всей верстке и убедиться, что все элементы меню правильно отображаются и взаимодействуют между собой. Мы можем проверить, что при нажатии на кнопку «бургер» меню открывается, при нажатии на элементы меню они выполняют нужные действия, а при повторном нажатии на кнопку «бургер» меню закрывается. Также стоит убедиться, что все элементы меню и их содержимое правильно стилизованы.

Важно также проверить, что меню корректно отображается на всех устройствах и в разных браузерах. Рекомендуется протестировать меню на компьютере, смартфоне и планшете, а также в браузерах Chrome, Firefox, Safari и Internet Explorer. При необходимости, можно вносить изменения в код, чтобы исправить любые обнаруженные проблемы с отображением и взаимодействием элементов меню.

Когда тестирование завершено и все работает как ожидается, наше меню бургер готово к использованию! Теперь можно добавить его на свой веб-сайт и насладиться результатом своего труда.

Оцените статью