Чтобы создать мобильное меню в CSS, можно использовать свойства CSS, такие как display, position, transform, transition, и другие. Вот пример простого мобильного меню:
HTML:
<nav>
<div class="menu-icon">
<span></span>
<span></span>
<span></span>
</div>
<ul class="menu">
<li><a href="#">Главная</a></li>
<li><a href="#">Услуги</a></li>
<li><a href="#">Контакты</a></li>
</ul>
</nav>
CSS:
nav {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #333;
color: #fff;
padding: 10px 20px;
}
.menu-icon {
display: none;
cursor: pointer;
flex-direction: column;
justify-content: space-between;
height: 24px;
width: 30px;
}
.menu-icon span {
background-color: #fff;
height: 3px;
width: 100%;
transition: transform 0.3s ease-in-out;
}
.menu {
display: flex;
justify-content: flex-end;
align-items: center;
}
.menu li {
list-style: none;
margin: 0 10px;
}
.menu a {
color: #fff;
text-decoration: none;
text-transform: uppercase;
font-weight: bold;
}
@media screen and (max-width: 768px) {
.menu {
display: none;
}
.menu-icon {
display: flex;
}
nav {
flex-direction: column;
align-items: flex-start;
}
.menu-icon {
display: flex;
}
.menu-icon span:first-of-type {
transform: translateY(5px) rotate(45deg);
}
.menu-icon span:nth-of-type(2) {
opacity: 0;
}
.menu-icon span:last-of-type {
transform: translateY(-5px) rotate(-45deg);
}
.menu.is-active {
display: flex;
flex-direction: column;
align-items: flex-start;
padding-left: 0;
width: 100%;
background-color: #222;
position: absolute;
top: 60px;
left: 0;
padding: 20px;
box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2);
transform: translateY(-100%);
transition: transform 0.3s ease-in-out;
}
.menu.is-active li {
margin: 15px 0;
}
.menu.is-active a {
color: #fff;
}
.menu-icon.is-active span:first-of-type {
transform: translateY(0) rotate(45deg);
}
.menu-icon.is-active span:nth-of-type(2) {
opacity: 0;
}
.menu-icon.is-active span:last-of-type {
transform: translateY(0) rotate(-45deg);
}
}
В этом примере мы используем flexbox для размещения элементов, используем transition для плавной анимации, display и position для создания мобильного меню. Мы также используем media query для изменения стилей, когда ширина экрана менее 768px. Это меню начинается как иконка «гамбургер» на больших экранах и переходит в полноценное меню при клике на иконку на малых экранах.
Пример на Codepen: https://codepen.io/anon/pen/zbRZVM