Меню №5
- 7,61 КБ
- HTML, CSS
- Меню
- адаптивное, анимация, гамбургер, мобильное, скользящее
- Лицензия MIT
<main>
<h1>
Полноэкранное меню
<span> с интересными ссылками</span>
</h1>
<input type="checkbox" id="myInput" />
<label for="myInput">
<span class="bar top"></span>
<span class="bar middle"></span>
<span class="bar bottom"></span>
</label>
<aside>
<div class="aside-section aside-left">
<div class="aside-content">
<p>Текст, который заставит вас нажать на рекламу</p>
<button class="button">РЕКЛАМА</button>
</div>
</div>
<div class="aside-section aside-right">
<ul class="aside-list">
<li><a href="#" class="aside-anchor">Ссылка</a></li>
<li><a href="#" class="aside-anchor">Ссылка</a></li>
<li><a href="#" class="aside-anchor">Ссылка</a></li>
<li><a href="#" class="aside-anchor">Ссылка</a></li>
</ul>
</div>
</aside>
</main>
@import url("https://fonts.googleapis.com/css?family=Montserrat");
body,
html {
height: 100%;
width: 100%;
padding: 0;
margin: 0;
font-family: "Montserrat", sans-serif;
color: #9c9fa3;
}
main {
height: 100%;
width: 100%;
position: relative;
overflow: hidden;
}
.aside-section {
top: 0;
bottom: 0;
position: absolute;
}
.aside-left {
display: none;
width: 40%;
left: 0;
background-color: #ff5964;
-webkit-transform: translateY(-100%);
-moz-transform: translateY(-100%);
-o-transform: translateY(-100%);
transform: translateY(-100%);
-webkit-transition: -webkit-transform 0.4s ease-in-out;
transition: -webkit-transform 0.4s ease-in-out;
-o-transition: -o-transform 0.4s ease-in-out;
-moz-transition: transform 0.4s ease-in-out, -moz-transform 0.4s ease-in-out;
transition: transform 0.4s ease-in-out;
transition: transform 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out, -moz-transform 0.4s ease-in-out, -o-transform 0.4s ease-in-out;
}
.aside-right {
width: 100%;
right: 0;
background-color: #38618c;
-webkit-transform: translateX(100%);
-moz-transform: translateX(100%);
-o-transform: translateX(100%);
transform: translateX(100%);
-webkit-transition: -webkit-transform 0.4s ease-in-out;
transition: -webkit-transform 0.4s ease-in-out;
-o-transition: -o-transform 0.4s ease-in-out;
-moz-transition: transform 0.4s ease-in-out, -moz-transform 0.4s ease-in-out;
transition: transform 0.4s ease-in-out;
transition: transform 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out, -moz-transform 0.4s ease-in-out, -o-transform 0.4s ease-in-out;
}
.aside-list {
list-style: none;
padding: 0;
margin: 0;
margin-top: 150px;
text-align: left;
padding-left: 50px;
}
.aside-content {
margin-top: 150px;
padding: 0 40px;
position: relative;
color: white;
text-align: center;
}
.aside-list li {
margin-bottom: 20px;
}
.aside-anchor::after {
content: "";
position: absolute;
bottom: 0;
background-color: #ff5964;
left: 0;
right: 0;
height: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
.aside-anchor::before {
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
content: "";
position: absolute;
bottom: 0;
background-color: #fff;
left: 0;
height: 3px;
z-index: 1;
width: 50%;
-webkit-transition: transform 0.2s ease-in-out;
-o-transition: transform 0.2s ease-in-out;
-webkit-transition: -webkit-transform 0.2s ease-in-out;
transition: -webkit-transform 0.2s ease-in-out;
-o-transition: -o-transform 0.2s ease-in-out;
-moz-transition: transform 0.2s ease-in-out, -moz-transform 0.2s ease-in-out;
transition: transform 0.2s ease-in-out;
transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out, -moz-transform 0.2s ease-in-out, -o-transform 0.2s ease-in-out;
}
.aside-anchor:hover:before {
-webkit-transform: translateX(100%);
-moz-transform: translateX(100%);
-o-transform: translateX(100%);
transform: translateX(100%);
}
.aside-anchor {
padding-bottom: 7px;
color: #fff;
text-decoration: none;
font-size: 30px;
position: relative;
font-weight: 500;
}
input[type="checkbox"] {
display: none;
}
input[type="checkbox"]:checked ~ aside .aside-left {
-webkit-transform: translateY(0%);
-moz-transform: translateY(0%);
-o-transform: translateY(0%);
transform: translateY(0%);
}
input[type="checkbox"]:checked ~ aside .aside-right {
-webkit-transform: translateX(0%);
-moz-transform: translateX(0%);
-o-transform: translateX(0%);
transform: translateX(0%);
}
input[type="checkbox"]:checked ~ label .bar {
background-color: #fff;
}
input[type="checkbox"]:checked ~ label .top {
-webkit-transform: translateY(0px) rotateZ(45deg);
-moz-transform: translateY(0px) rotateZ(45deg);
-o-transform: translateY(0px) rotateZ(45deg);
transform: translateY(0px) rotateZ(45deg);
}
input[type="checkbox"]:checked ~ label .bottom {
-webkit-transform: translateY(-15px) rotateZ(-45deg);
-moz-transform: translateY(-15px) rotateZ(-45deg);
-o-transform: translateY(-15px) rotateZ(-45deg);
transform: translateY(-15px) rotateZ(-45deg);
}
input[type="checkbox"]:checked ~ label .middle {
width: 0;
}
.middle {
margin: 0 auto;
}
label {
top: 10px;
display: inline-block;
padding: 7px 10px;
background-color: transparent;
cursor: pointer;
margin: 10px;
z-index: 3;
position: fixed;
}
.bar {
display: block;
background-color: #38618c;
width: 30px;
height: 3px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
margin: 5px auto;
-webkit-transition: background-color 0.4s ease-in, width 0.4s ease-in, -webkit-transform 0.4s ease-in;
transition: background-color 0.4s ease-in, width 0.4s ease-in, -webkit-transform 0.4s ease-in;
-o-transition: background-color 0.4s ease-in, width 0.4s ease-in, -o-transform 0.4s ease-in;
-moz-transition: background-color 0.4s ease-in, transform 0.4s ease-in, width 0.4s ease-in, -moz-transform 0.4s ease-in;
transition: background-color 0.4s ease-in, transform 0.4s ease-in, width 0.4s ease-in;
transition: background-color 0.4s ease-in, transform 0.4s ease-in, width 0.4s ease-in, -webkit-transform 0.4s ease-in, -moz-transform 0.4s ease-in, -o-transform 0.4s ease-in;
}
h1 {
margin: 0;
position: relative;
top: 50%;
left: 0;
right: 0;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
text-align: center;
font-size: 30px;
}
h1 span {
font-size: 20px;
display: block;
}
p {
font-size: 30px;
}
.button {
display: inline-block;
background-image: none;
border: none;
background-color: transparent;
padding-bottom: 7px;
position: relative;
cursor: pointer;
font-size: 20px;
color: white;
padding: 7px 50px;
border: 2px solid white;
}
@media (min-width: 992px) {
h1 {
font-size: 40px;
}
.aside-left {
display: block;
}
.aside-right {
width: 60%;
}
}
Этот фрагмент кода создаёт интерактивное меню на веб-странице, которое идеально подходит для улучшения пользовательского опыта на различных устройствах, от настольных компьютеров до мобильных телефонов. Представьте, что вы создаете стильный, современный веб-сайт и хотите включить меню, которое не только выглядит привлекательно, но и функционирует безупречно на разных размерах экрана. Этот код является вашим решением для создания адаптивного, скользящего меню, которое красиво адаптируется под устройство пользователя, улучшая общий опыт просмотра.
В центре этого дизайна лежит концепция гамбургер-меню, которая является популярным выбором для мобильных сайтов из-за своей компактности и экономии пространства. Когда вы нажимаете или касаетесь этого значка гамбургера, полноэкранное меню волшебным образом выдвигается, предлагая список навигационных ссылок без захламления экрана. Этот переход не просто появление; это анимация, которая превращает меню из минималистичного набора полос в полноценное навигационное средство, делая взаимодействие пользователя гладким и визуально привлекательным.
Для достижения такого вовлекающего пользовательского опыта код использует CSS для стилизации и анимаций, наряду с HTML для структуры. CSS-анимации оживляют меню, скользя его взгляд и из поля зрения с правильным таймингом, обеспечивая ощущение отзывчивости и интуитивности меню. Использование медиа-запросов в CSS также делает меню адаптивным, то есть оно корректирует свой макет и функциональность для обеспечения оптимального просмотра на различных устройствах, от узких экранов смартфонов до широких дисплеев настольных компьютеров. Эта адаптивность ключевая в современном веб-дизайне, где подход «один размер для всех» просто не работает.