Пишу бургер меню и выходит вот такая проблема, что у меня бургер меню выходит за рамки экрана, а при не активном использовании часть меню видна. В чем может быть проблема?
Вот мой код:
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");
});
}
Выходит в результате вот такое: