@DereBkO

Почему меню бургер выходит за рамки экрана?

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

HTML
<body>
  <header>
    <nav>
      <div class="container">
        <a href="#" class="logo">Лого</a>
        <ul class="menu">
          <li><a href="#" class="menu_link">Главная</a></li>
          <li><a href="#" class="menu_link">Вопросы</a></li>
          <li><a href="#" class="menu_link">Ваш заказ</a></li>
          <li><a href="#" class="menu_link">Контакты</a></li>
          <li><a href="#" class="menu_link">О нас</a></li>
        </ul>
        <div class="burger">
          <span></span>
        </div>
      </div>
    </nav>
  </header>
</body>


CSS
body {
  margin: 0;
  padding: 0;
}

header {
  height: 80px;
  width: 100%;
  background-color: blue;
}

.container {
  display: flex;
  max-width: 1200px;
  height: 80px;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
}

.logo {
  color: #fff;
  text-decoration: none;
  font-size: 30px;
}

.menu {
  list-style-type: none;
  display: flex;
  justify-content: space-between;
}

.menu_link {
  color: #fff;
  font-size: 20px;
  margin-left: 10px;
}

@media(max-width: 767px) {
    .burger {
    display: block;
    position: relative;
    width: 30px;
    height: 18px;
    cursor: pointer;
    z-index: 5
  }

  .burger span {
    left: 0;
    position: absolute;
    height: 10%;
    top: 50%;
    transform: scale(1) translate(0, -50%);
    width: 100%;
    transition: all 0.3s ease 0s;
    background-color: #000
  }

  .burger::before {
    content: '';
    left: 0;
    top: 0;
    position: absolute;
    height: 10%;
    width: 100%;
    transition: all 0.3s ease 0s;
    background-color: #000
  }

  .burger::after {
    content: '';
    left: 0;
    bottom: 0;
    position: absolute;
    height: 10%;
    width: 100%;
    transition: all 0.3s ease 0s;
    background-color: #000
  }

  .burger._active span {
    transform: scale(0) translate(0, 0)
  }

  .burger._active::before {
    background-color: #fff;
    top: 50%;
    transform: rotate(-45deg) translate(0, -50%)
  }

  .burger._active::after {
    background-color: #fff;
    bottom: 50%;
    transform: rotate(45deg) translate(0, 50%)
  }
  .menu {
    position: fixed;
    top: -13px;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    padding: 100px 30px 30px 30px;
    transition: left 0.3s ease 0s;
    overflow: auto;
  }
  .menu._active {
    left: 0;
  }
}


Ну и немного JS
const iconMenu = document.querySelector(".burger"); /* Иконка бургера */
const menuBody = document.querySelector(".menu"); /* Блок в котором есть бургер */
if (iconMenu) {
    iconMenu.addEventListener("click", function (e) {
        document.body.classList.toggle("_lock");
        iconMenu.classList.toggle("_active");
        menuBody.classList.toggle("_active");
    });
}


Выходит в результате вот такое:
63bf998d459a9426705083.png
63bf99a7bd408564139142.png
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы