{wcademy}

Как нарисовать кнопку-гамбургер на чистом 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);
}

До связи!

🚀  Если узнал из статьи что-то полезное, ставь лайк и подписывайся на наш канал в Телеграм или группу ВК. Обсудить статью можно в нашем уютном чатике 😏

© 2019 - 2022, {wcademy}