Демо
  • 2,69 КБ
  • HTML, CSS
  • Меню
  • выпадающее, горизонтальное
  • Лицензия MIT
HTML
<nav role="navigation">
    <ul>
        <li><a href="#">Главная</a></li>
        <li>
            <a href="#">О нас</a>
            <ul>
                <li><a href="">Команда</a></li>
                <li><a href="">История</a></li>
            </ul>
        </li>
        <li><a href="#">Клиенты</a></li>
        <li>
            <a href="#">Контакты</a>
            <ul>
                <li><a href="">Адрес</a></li>
                <li><a href="">Менеджеры</a></li>
            </ul>
        </li>
    </ul>
</nav>
CSS
@import url(https://fonts.googleapis.com/css?family=Lato);
*,
*:before,
*:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    font-family: "Lato", sans-serif;
}
nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #fff;
    -webkit-box-shadow: 0 3px 10px -2px rgba(0, 0, 0, 0.1);
    -moz-box-shadow: 0 3px 10px -2px rgba(0, 0, 0, 0.1);
    box-shadow: 0 3px 10px -2px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(0, 0, 0, 0.1);
}

nav ul {
    list-style: none;
    position: relative;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: flex;
    padding: 0;
    margin: auto;
    max-width: 70%;
}

nav ul li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: flex;
    margin: auto;
    -webkit-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}

nav ul li:hover {
    background: rgba(0, 0, 0, 0.15);
}

nav ul li:hover > ul {
    display: block;
}

nav ul li {
    float: left;
    -webkit-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}

nav ul li a {
    display: block;
    padding: 30px 20px;
    color: #222;
    font-size: 0.9em;
    letter-spacing: 1px;
    text-decoration: none;
    text-transform: uppercase;
}

nav ul ul {
    display: none;
    background: #fff;
    position: absolute;
    top: 100%;
    -webkit-box-shadow: -3px 3px 10px -2px rgba(0, 0, 0, 0.1);
    -moz-box-shadow: -3px 3px 10px -2px rgba(0, 0, 0, 0.1);
    box-shadow: -3px 3px 10px -2px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(0, 0, 0, 0.1);
}

nav ul ul li {
    float: none;
    position: relative;
}

nav ul ul li a {
    padding: 15px 30px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

nav ul ul ul {
    position: absolute;
    left: 100%;
    top: 0;
}

Данный фрагмент кода создает элегантное и удобное выпадающее меню, встроенное в горизонтальную структуру меню, что идеально подходит для панели навигации веб-сайта. В основе этого решения лежит элемент HTML <nav>, который служит контейнером для навигационных ссылок. Внутри него расположен неупорядоченный список <ul>, каждый элемент которого <li> может включать в себя другой неупорядоченный список, формируя таким образом выпадающее меню для данной категории. Эта структура обеспечивает чистую, иерархическую организацию навигационных ссылок, где основные категории видны в горизонтальном меню, а дополнительные опции открываются под каждой категорией как часть выпадающего меню.

Переходя к CSS, здесь весь акцент сделан на стилизации и адаптивности. CSS начинается с установки глобального свойства box-sizing для обеспечения согласованности размеров внутренних и внешних отступов, а также границ через браузеры. Навигационная панель nav стилизована так, чтобы быть зафиксированной в верхней части страницы с белым фоном, тонкой тенью для создания глубины и границей для изысканного вида. Основной <ul> внутри nav настроен на отображение его элементов в ряд flex, централизуя элементы и устанавливая максимальную ширину для поддержания структуры меню на различных размерах экрана.

Наконец, волшебство выпадающего меню происходит с помощью CSS, нацеливающегося на вложенные <ul> элементы. Изначально скрытые display: none;, эти выпадающие меню становятся видимыми display: block;, когда наводишь курсор на их родительский <li>, благодаря псевдоклассу :hover. Это обеспечивает бесшовное взаимодействие, позволяя пользователям наводить курсор на элемент меню для отображения дополнительных опций без необходимости кликать. Стилизация гарантирует, что выпадающие меню визуально отличаются, но при этом гармонируют с общим дизайном, предлагая белые фоны, тонкие тени и отдельные элементы списка, которые переходят к вертикальному расположению, отличая их от горизонтального расположения основных пунктов меню.

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