Как нарисовать кнопку-гамбургер на чистом css?
July 14, 2020
Привет! Давно прошли времена, когда нужно было подставлять картинки! Предлагаю руками сделать кнопку-гамбургер (так называют кнопку для меню на мобилках), который при наведении будет красиво трансформироваться в крестик (для закрытия меню).
Начнём.
- создаём контейнер div с классом hamburger-button
- размещаем в нём три дива для верхней, средней и нижней полоски
- делаем контейнер flex-контейнером (display: flex) c flex-direction column и flex-wrap wrap
- задаём равные расстояния между полосками с помощью justify-content: space-between
- анимация имеет три части: верхняя и нижняя полоски поворачиваются на 45 градусов (rotate(45deg)), а средняя постепенно исчезает (устанавливаем opacity: 0)
- задаём transform-origin left, чтобы полоски вращались налево
- и установим transition all 0.5s, чтобы анимации transform и opacity происходили одновременно за полсекунды
<div class="hamburger-button">
<div class="hamburger-button-top"></div>
<div class="hamburger-button-middle"></div>
<div class="hamburger-button-bottom"></div>
</div>
.hamburger-button {
display: flex;
flex-direction: column;
flex-wrap: wrap;
justify-content: space-between;
height: 2.5rem;
width: 2.5rem;
cursor: pointer;
}
.hamburger-button-top,
.hamburger-button-middle,
.hamburger-button-bottom {
height: 5px;
background: black;
border-radius: 5px;
margin: 3px 0px;
transform-origin: left;
transition: all 0.5s;
}
.hamburger-button:hover .hamburger-button-top {
transform: rotate(45deg);
}
.hamburger-button:hover .hamburger-button-middle {
opacity: 0;
}
.hamburger-button:hover .hamburger-button-bottom {
transform: rotate(-45deg);
}
До связи!
🚀 Если узнал из статьи что-то полезное, ставь лайк и подписывайся на наш канал в Телеграм или группу ВК. Обсудить статью можно в нашем уютном чатике 😏