← Каталог
Типовые элементы интерфейса — Меню-бургер (Burger menu)
Фрагмент из «Типовые элементы интерфейса»: Меню-бургер (Burger menu).
<nav class="navbar-burger">
<a href="#" class="navbar-burger__brand">МойСайт</a>
<input type="checkbox" id="nav-burger" class="navbar-burger__toggle">
<label for="nav-burger" class="navbar-burger__btn" aria-label="Открыть меню">
<span></span>
<span></span>
<span></span>
</label>
<ul class="navbar-burger__menu">
<li><a href="#" class="is-active">Главная</a></li>
<li><a href="#">Услуги</a></li>
<li><a href="#">О нас</a></li>
<li><a href="#">Контакты</a></li>
</ul>
</nav> <nav class="navbar-burger">
<a href="#" class="navbar-burger__brand">МойСайт</a>
<input type="checkbox" id="nav-burger" class="navbar-burger__toggle">
<label for="nav-burger" class="navbar-burger__btn" aria-label="Открыть меню">
<span></span>
<span></span>
<span></span>
</label>
<ul class="navbar-burger__menu">
<li><a href="#" class="is-active">Главная</a></li>
<li><a href="#">Услуги</a></li>
<li><a href="#">О нас</a></li>
<li><a href="#">Контакты</a></li>
</ul>
</nav> .navbar-burger {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
padding: 0.75rem 1rem;
background-color: #ffffff;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
position: relative;
}
.navbar-burger__brand {
font-size: 1.25rem;
font-weight: var(--font-weight-bold);
color: var(--color-dark);
text-decoration: none;
}
.navbar-burger__toggle {
position: absolute;
opacity: 0;
pointer-events: none;
}
.navbar-burger__btn {
display: flex;
flex-direction: column;
justify-content: center;
gap: 5px;
width: 44px;
height: 44px;
padding: 10px;
cursor: pointer;
}
.navbar-burger__btn span {
display: block;
height: 2px;
background-color: var(--color-dark);
border-radius: 1px;
transition: transform 0.2s ease, opacity 0.2s ease;
}
.navbar-burger__menu {
display: none;
flex-direction: column;
list-style: none;
margin: 0;
padding: 0.5rem 0 0;
width: 100%;
border-top: 1px solid #e9ecef;
}
.navbar-burger__menu a {
display: block;
padding: 0.75rem 0.25rem;
text-decoration: none;
color: var(--color-dark);
font-weight: var(--font-weight-semibold);
}
.navbar-burger__menu a.is-active,
.navbar-burger__menu a:hover {
color: var(--color-primary);
}
.navbar-burger__toggle:checked ~ .navbar-burger__menu {
display: flex;
}
.navbar-burger__toggle:checked + .navbar-burger__btn span:nth-child(1) {
transform: translateY(7px) rotate(45deg);
}
.navbar-burger__toggle:checked + .navbar-burger__btn span:nth-child(2) {
opacity: 0;
}
.navbar-burger__toggle:checked + .navbar-burger__btn span:nth-child(3) {
transform: translateY(-7px) rotate(-45deg);
}
@media (min-width: 768px) {
.navbar-burger {
flex-wrap: nowrap;
padding: 1rem 2rem;
}
.navbar-burger__btn {
display: none;
}
.navbar-burger__menu {
display: flex;
flex-direction: row;
align-items: center;
gap: 1.5rem;
width: auto;
border-top: none;
padding: 0;
}
.navbar-burger__menu a {
padding: 0;
}
} .navbar-burger {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
padding: 0.75rem 1rem;
background-color: #ffffff;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
position: relative;
}
.navbar-burger__brand {
font-size: 1.25rem;
font-weight: var(--font-weight-bold);
color: var(--color-dark);
text-decoration: none;
}
.navbar-burger__toggle {
position: absolute;
opacity: 0;
pointer-events: none;
}
.navbar-burger__btn {
display: flex;
flex-direction: column;
justify-content: center;
gap: 5px;
width: 44px;
height: 44px;
padding: 10px;
cursor: pointer;
}
.navbar-burger__btn span {
display: block;
height: 2px;
background-color: var(--color-dark);
border-radius: 1px;
transition: transform 0.2s ease, opacity 0.2s ease;
}
.navbar-burger__menu {
display: none;
flex-direction: column;
list-style: none;
margin: 0;
padding: 0.5rem 0 0;
width: 100%;
border-top: 1px solid #e9ecef;
}
.navbar-burger__menu a {
display: block;
padding: 0.75rem 0.25rem;
text-decoration: none;
color: var(--color-dark);
font-weight: var(--font-weight-semibold);
}
.navbar-burger__menu a.is-active,
.navbar-burger__menu a:hover {
color: var(--color-primary);
}
.navbar-burger__toggle:checked ~ .navbar-burger__menu {
display: flex;
}
.navbar-burger__toggle:checked + .navbar-burger__btn span:nth-child(1) {
transform: translateY(7px) rotate(45deg);
}
.navbar-burger__toggle:checked + .navbar-burger__btn span:nth-child(2) {
opacity: 0;
}
.navbar-burger__toggle:checked + .navbar-burger__btn span:nth-child(3) {
transform: translateY(-7px) rotate(-45deg);
}
@media (min-width: 768px) {
.navbar-burger {
flex-wrap: nowrap;
padding: 1rem 2rem;
}
.navbar-burger__btn {
display: none;
}
.navbar-burger__menu {
display: flex;
flex-direction: row;
align-items: center;
gap: 1.5rem;
width: auto;
border-top: none;
padding: 0;
}
.navbar-burger__menu a {
padding: 0;
}
}