Выдвижное меню (или бургер-меню) можно создать в CSS с помощью свойств transform и transition. Вот пример:
HTML:
<nav>
<div class="burger-icon">
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</div>
<ul class="menu">
<li><a href="#">Главная</a></li>
<li><a href="#">О нас</a></li>
<li><a href="#">Контакты</a></li>
</ul>
</nav>
CSS:
nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px;
background-color: #333;
height: 60px;
}
.burger-icon {
display: flex;
flex-direction: column;
justify-content: space-between;
cursor: pointer;
width: 30px;
height: 20px;
}
.burger-icon .line {
width: 100%;
height: 3px;
background-color: #fff;
transition: all 0.2s ease-in-out;
}
.menu {
position: absolute;
top: 60px;
right: -100%;
width: 200px;
background-color: #333;
list-style-type: none;
padding: 10px;
transition: all 0.2s ease-in-out;
}
.menu li {
margin-bottom: 10px;
}
.menu li a {
display: block;
color: #fff;
text-decoration: none;
}
.burger-open .line:nth-of-type(1) {
transform: rotate(45deg) translateY(8px);
}
.burger-open .line:nth-of-type(2) {
opacity: 0;
}
.burger-open .line:nth-of-type(3) {
transform: rotate(-45deg) translateY(-8px);
}
.burger-open + .menu {
right: 0;
}
В этом примере мы создаем навигационное меню с бургер-иконкой и выдвижным меню. Бургер-иконка создается с помощью блока .burger-icon, который состоит из трех линий (бургер-кнопок). Выдвижное меню скрыто позиционированием вправо на 100% при помощи свойства right.
При нажатии на бургер-иконку мы добавляем класс .burger-open для открытия меню и анимации бургер-иконки при помощи свойства transform и opacity на соответствующих линиях.
Меню плавно выдвигается за счет изменения свойства right со значения -100% на 0 с помощью транзишна.
Также у нас есть стили для нашего навигационного меню и ссылок в нем.
Обратите внимание, что если вы хотите использовать этот код для мобильных устройств, вам может потребоваться добавить некоторые дополнительные стили для адаптивности, например для скрытия меню и отображения бургер-иконки на маленьких экранах.