Демо
  • 4,32 КБ
  • HTML, CSS
  • Меню
  • адаптивное, вертикальное, горизонтальное
  • Лицензия MIT
HTML
<div class="menu-block">
    <div class="logo">
        <a href="#">
            <img src="https://tricksforweb.dev/wp-content/uploads/2024/01/logo-site.webp" alt="logo" />
        </a>
    </div>
    <nav class="menu" role="navigation">
        <ul class="menu-links">
            <li><a href="#">О нас</a></li>
            <li><a href="#">Блог</a></li>
            <li><a href="#">Партнёрство</a></li>
            <li><a href="#">Контакты</a></li>
        </ul>
    </nav>
</div>
CSS
.menu-block,
.logo,
.menu,
.menu-links,
.logo > a {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0;
}

.menu-block {
    background-color: #ffffff;
    position: fixed;
    width: 100%;
    left: 0;
    top: 0;
    z-index: 999;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -moz-box-orient: horizontal;
    -moz-box-direction: normal;
    flex-direction: row;
    -webkit-box-shadow: 0px 12px 24px 0px rgba(0, 0, 0, 0.36);
    -moz-box-shadow: 0px 12px 24px 0px rgba(0, 0, 0, 0.36);
    box-shadow: 0px 12px 24px 0px rgba(0, 0, 0, 0.36);
}

.logo {
    margin: 0 15px;
}

.logo > a {
    height: 100px;
    line-height: 100px;
    padding: 50px 0;
}

.logo > a > img {
    max-height: 40px;
}
.menu-links a {
    -webkit-text-decoration: underline 0 rgba(255, 255, 255, 0);
    -moz-text-decoration: underline 0 rgba(255, 255, 255, 0);
    text-decoration: underline 0 rgba(255, 255, 255, 0);
    text-underline-offset: 1px;
    text-transform: uppercase;
    color: black;
    -webkit-transition: all 0.15s linear;
    -o-transition: all 0.15s linear;
    -moz-transition: all 0.15s linear;
    transition: all 0.15s linear;
}
.menu-links a:hover {
    text-decoration: underline;
    color: blue;
    -webkit-text-decoration-color: blue;
    -moz-text-decoration-color: blue;
    text-decoration-color: blue;
}

.logo > a {
    display: block;
    height: 50px;
    line-height: 50px;
    padding: 5px 0;
}

.logo > a > img {
    max-height: 40px;
}

.menu-links {
    list-style: none;
    margin: 0 auto;
    text-align: center;
    width: 100%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -moz-box-orient: horizontal;
    -moz-box-direction: normal;
    flex-direction: row;
}

.menu {
    margin: auto 0;
}
.menu-links li:not(:last-child) {
    margin-right: 10px;
}

@media only screen and (min-width: 1240px) {
    .menu-block {
        width: 250px;
        height: 100%;
        top: 0;
        left: 0;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -moz-box-orient: vertical;
        -moz-box-direction: normal;
        flex-direction: column;
        -webkit-box-shadow: 11px 0 28px 4px rgba(0, 0, 0, 0.22);
        -moz-box-shadow: 11px 0 28px 4px rgba(0, 0, 0, 0.22);
        box-shadow: 11px 0 28px 4px rgba(0, 0, 0, 0.22);
    }

    .logo {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        text-align: center;
        margin: 15px 0;
    }

    .logo > a {
        -webkit-box-sizing: content-box;
        -moz-box-sizing: content-box;
        box-sizing: content-box;
        height: 100px;
        line-height: 100px;
        padding: 50px 0;
    }

    .logo > a > img {
        width: 100%;
        max-height: 100%;
    }

    .menu {
        display: -webkit-box;
        display: -webkit-flex;
        display: -moz-box;
        display: flex;
        margin-top: 0;
    }

    .menu-links {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -moz-box-orient: vertical;
        -moz-box-direction: normal;
        flex-direction: column;
    }

    .menu-links li {
        width: 100%;
    }

    .menu-links li:not(:last-child) {
        margin-bottom: 15px;
    }
}

Фрагмент кода, который мы рассматриваем, направлен на создание навигационного меню веб-сайта, которое было бы как привлекательным, так и функциональным. Представьте: в верхней части веб-страницы находится изящное горизонтальное меню. Это меню является вашим проводником, ведущим вас в различные части сайта. Оно зафиксировано в верхней части и остается с вами, когда вы прокручиваете страницу. Оно разработано так, чтобы быть первым, что вы видите, с чистым белым фоном и тенью, которая слегка поднимает его над страницей, делая его более заметным.

Но вот где все становится действительно интересным. Это меню не просто красивое; оно создано для адаптации. Когда размер экрана достигает определенной ширины — благодаря магии CSS медиа-запросов — меню переходит из горизонтального расположения в вертикальное. Это то, что мы называем адаптивным меню. Как будто меню понимает, что экран становится слишком узким, и говорит: «Нет проблем, я могу измениться!» Вдруг меню растягивается вниз по боку вашего экрана, лучше используя пространство и сохраняя все доступным, независимо от размера устройства.

Стилизация CSS — это то, что придает этому преобразованию жизнь. Она обеспечивает согласованный вид меню на разных устройствах, с настройками для того, как выглядят и ведут себя ссылки при наведении на них. Речь идет о том, чтобы сделать меню не только функциональным, но и частью общего дизайна сайта. Переход от горизонтального к вертикальному расположению меню на меньших экранах является ярким примером дизайна с учетом пользователя, обеспечивая легкость навигации по сайту, независимо от того, как вы к нему обращаетесь. Эта адаптивность необходима в современном мире, где мы переключаемся между устройствами так, будто это ничего не стоит.

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