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