Демо
  • 7,61 КБ
  • HTML, CSS
  • Меню
  • адаптивное, анимация, гамбургер, мобильное, скользящее
  • Лицензия MIT
HTML
<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>
CSS
@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 также делает меню адаптивным, то есть оно корректирует свой макет и функциональность для обеспечения оптимального просмотра на различных устройствах, от узких экранов смартфонов до широких дисплеев настольных компьютеров. Эта адаптивность ключевая в современном веб-дизайне, где подход «один размер для всех» просто не работает.

  •  Меню №54
    Меню №23
    Меню №23
    • HTML, CSS, JS
    • 9,87 КБ
    • Вертикальное
    Подробнее
  •  Меню №55
    Меню №22
    Меню №22
    • HTML, CSS
    • 6,33 КБ
    • Вертикальное, выпадающее
    Подробнее
  •  Меню №55
    Меню №21
    Меню №21
    • HTML, CSS
    • 1,64 КБ
    • Вертикальное, сайдбар, скользящее
    Подробнее
  •  Меню №54
    Меню №20
    Меню №20
    • HTML, CSS
    • 5,06 КБ
    • Вертикальное, скользящее
    Подробнее
  •  Меню №54
    Меню №19
    Меню №19
    • HTML, CSS
    • 8,21 КБ
    • Вертикальное, гамбургер, скользящее
    Подробнее
  •  Меню №54.5
    Меню №18
    Меню №18
    • HTML, CSS
    • 2,94 КБ
    • Вертикальное
    Подробнее
Меню