#html #css #responsive-design #css-transitions #hamburger-menu
#HTML #css #адаптивный дизайн #css-переходы #hamburger-menu
Вопрос:
У меня возникла проблема, когда transition
свойство работает для burger, но не работает для меню. Он скрывает / показывает без эффекта перехода.
.top-menu .burger-menu {
width: 35px;
height: 5px;
background: var(--text-dark-blue);
position: absolute;
top: 50%;
left: 10px;
transform: translateY(-50%);
border-radius: 4px;
transition: all .2s ease-in-out.2s;
}
.top-menu .burger-menu:before {
content: '';
display: block;
width: 35px;
height: 5px;
background: var(--text-dark-blue);
position: absolute;
top: -10px;
border-radius: 4px;
transition: all .2s ease-in-out.2s;
}
.top-menu .burger-menu:after {
content: '';
display: block;
width: 35px;
height: 5px;
background: var(--text-dark-blue);
position: absolute;
bottom: -10px;
border-radius: 4px;
transition: all .2s ease-in-out.2s;
}
.top-menu .burger-menu.open:before {
transform: rotate(45deg);
top: 0;
transition: all .2s ease-in-out.2s;
}
.top-menu .burger-menu.open:after {
transform: rotate(-45deg);
bottom: 0;
transition: all .2s ease-in-out.2s;
}
.top-menu .burger-menu .mobile {
display: none;
transition: all .2s ease-in-out.2s;
}
.top-menu .burger-menu.open {
background: 0;
transition: all .2s ease-in-out.2s;
}
.top-menu .burger-menu.open .mobile {
display: block;
position: absolute;
top: 25px;
left: -63px;
}
.top-menu .burger-menu.open .mobile ul li a {
background: var(--text-dark-blue);
color: #fff;
display: block;
min-width: 250px;
font-size: 30px;
line-height: 35px;
padding: 10px;
}
.top-menu .burger-menu.open .mobile ul li a:hover {
background-color: var(--text-light-blue);
text-decoration: none;
}
<div class="top-menu">
<a href="#" class="logo">Site Logo</a>
<div class="burger-menu">
<div class="mobile">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Free</a></li>
<li><a href="#">About us</a></li>
</ul>
</div>
</div>
</div>