Как сделать так, чтобы меню сайта на маленьких экранах превращалось в бургер меню? На чистом css

Мне нужно, чтобы меню на экранах размером менее 768 пикселей превратилось в бургер меню в правом верхнем углу. Желательно только на html и css. Заранее спасибо

Я пытался искать ответ в Интернете, но не нашел нужного ответа

введите сюда описание изображения введите сюда описание изображения введите сюда описание изображения


Ответы (1 шт):

Автор решения: Dovgal Dima

document.addEventListener('DOMContentLoaded', function () {
    const burgerMenu = document.querySelector('.burger-menu');
    const menu = document.querySelector('.menu');

    burgerMenu.addEventListener('click', function () {
        menu.classList.toggle('active');
    });
});
body {
    margin: 0;
    font-family: Arial, sans-serif;
}

.navbar {
    background-color: #333;
    overflow: hidden;
    padding: 15px;
    color: white;
    display: flex;
    justify-content: space-between;
}

.logo {
    font-size: 1.5em;
}

.menu {
    display: flex;
}

.menu ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
}

.menu li {
    margin: 0 15px;
}

.menu a {
    text-decoration: none;
    color: white;
    font-weight: bold;
}

.burger-menu {
    font-size: 1.5em;
    cursor: pointer;
    display: none; /* Изначально скрываем бургер-меню */
}

@media only screen and (max-width: 768px) {
    .menu {
        display: none; /* Скрываем основное меню на маленьких экранах */
    }

    .burger-menu {
        display: block; /* Показываем бургер-меню на маленьких экранах */
    }

    .burger-menu.active {
        display: none; /* Скрываем бургер-меню при активации (открытии) */
    }

    .menu.active {
        display: flex; /* Показываем основное меню при активации (открытии) */
        flex-direction: column;
        position: absolute;
        top: 60px;
        left: 0;
        background-color: #333;
        width: 100%;
        z-index: 1;
    }

    .menu.active a {
        padding: 15px;
        display: block;
        text-align: center;
    }
}
<div class="navbar">
    <div class="logo">Ваш логотип</div>
    <div class="menu">
        <ul>
            <li><a href="#">Главная</a></li>
            <li><a href="#">О нас</a></li>
            <li><a href="#">Контакты</a></li>
        </ul>
    </div>
    <div class="burger-menu">&#9776;</div>
</div>

Предлагаю такой вариант...

→ Ссылка