Как создать выпадающее меню навигации с помощью CSS
Интересное и привлекательное меню навигации имеет значительную роль для каждой веб-страницы. Такие меню важны для легкого доступа к вашей странице. Кроме этого, пользователям нравятся хорошо спроектированные веб-страницы.
В этой статье мы расскажем, как создать выпадающее меню навигации. А сейчас пошагово покажем, как создать интересное навигационное меню.
Есть три способа создания выпадающего меню с помощью Flash, JavaScript и CSS/HTML.
Мы покажем меню на основе CSS/HTML, так как оно имеет некоторые преимущества. Это самый легкий способ, а также имеет небольшой размер приложения.
Использование CSS/HTML - самый лучший метод, чтобы избежать конфликтов при JavaScript. Помимо этого, меню на основе CSS/HTML могут быть использованы многими.
1. Создайте HTML.
Как всегда мы начинаем с создания HTML.
- Создайте элемент <div> с id. Создайте тег <ul> внутри элемента <div> с классом "navbar". Тег <ul> используется для указания неупорядоченного списка, который содержит элементы без порядковых номеров. Каждый элемент неупорядоченного списка описывается внутри тега <li>.
- Внутри тега <li> добавьте контент, который хотите показать в меню.
<div id="wrap">
<ul class="navbar">
<li>
<a href="#">Главная страница</a>
</li>
<li>
<a href="#">Учебники</a>
<ul>
<li><a href="#">Изучите HTML</a></li>
<li><a href="#">Изучите CSS</a></li>
<li><a href="#">Изучите JavaScript</a></li>
<li><a href="#">Изучите PHP</a></li>
</ul>
</li>
<li>
<a href="#">Тесты</a>
<ul>
<li><a href="#" >Основы CSS</a></li>
<li><a href="#">Основы PHP</a></li>
<li><a href="#">Основы JavaScript</a></li>
</ul>
</li>
<li>
<a href="#">Инструменты</a>
<ul>
<li><a href="#">Геометрические изображения</a></li>
<li><a href="#">Color Picker</a></li>
<li><a href="#">Генератор паролей</a></li>
<li><a href="#">HTML редактор</a></li>
<li><a href="#">Base 64</a></li>
</ul>
</li>
<li>
<a href="#">Сниппеты</a>
<ul>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">Angular</a></li>
<li><a href="#">Java</a></li>
</ul>
</li>
<li>
<a href="#">String Functions</a>
<ul>
<li><a href="#">Реверс строки</a></li>
<li><a href="#">URL кодер</a></li>
<li><a href="#">Удаление пустых строк</a></li>
<li><a href="#">Подсчет слов в строке</a></li>
</ul>
</li>
</ul>
Первая часть готова. А теперь продолжим и создадим красивое навигационное меню.
2. Добавьте CSS.
Теперь, когда у нас есть половина кода, можем добавить к нему стиль. С помощью CSS свойств создадим выпадающее меню.
- Установите для меню ширину и высоту с помощью свойств width и height.
- Установите z-index, чтобы убедиться, что навигационное меню будет находится поверх остальных элементов.
- Установите также цвет для всего меню с помощью свойства color. Можете выбрать цвет из нашего инструмента Color Picker.
#wrap{
width: 100%;
height: 50px;
margin: 0;
z-index: 99;
position: relative;
background-color: #444444;
}
- Установите свойство position в значение "absolute", чтобы навигационное меню не смещало остальные элементы вниз.
.navbar{
height: 50px;
padding: 0;
margin: 0;
position: absolute;
}
- Расположите элементы меню по горизонтали сверху от страницы с помощью свойства float со значением "left".
.navbar li {
height: auto;
width: 135.8px;
float: left;
text-align: center;
list-style: none;
font: normal bold 13px/1em Arial, Verdana, Helvetica;
padding: 0;
margin: 0;
background-color: #444444;
}
- Добавьте стиль к остальным тегам привязки.
.navbar a{
padding: 18px 0;
border-left: 1px solid #ccc9c9;
text-decoration: none;
color: white;
display: block;
}
- Добавьте стиль для фона меню, чтобы изменить цвет при наведении курсора мыши.
.navbar li:hover, a:hover {
background-color: #444444;
}
- Добавьте стиль, чтобы скрыть выпадающее меню и еще один стиль для его отображения при наведении курсора мыши на элемент главного меню.
.navbar li ul{
display: none;
height: auto;
margin: 0;
padding: 0;
}
.navbar li:hover ul{
display: block;
}
- Добавьте стиль к выпадающему меню.
.navbar li ul li{
background-color: #444444;
}
- Измените границы для создания эффекта главного меню.
.navbar li ul li a{
border-left: 1px solid #444444;
border-right: 1px solid #444444;
border-top: 1px solid #c9d4d8;
border-bottom: 1px solid #444444;
}
.navbar li ul li a:hover{
background-color: #a3a1a1;
}
А сейчас увидим, каким получилось выпадающее меню:
Пример
<!DOCTYPE html>
<html>
<head>
<style>
#wrap{
width: 100%;
height: 50px;
margin: 0;
z-index: 99;
position: relative;
background-color: #444444;
}
.navbar{
height: 50px;
padding: 0;
margin: 0;
position: absolute;
}
.navbar li{
height: auto;
width: 135.8px;
float: left;
text-align: center;
list-style: none;
font: normal bold 13px/1em Arial, Verdana, Helvetica;
padding: 0;
margin: 0;
background-color: #444444;
}
.navbar a{
padding: 18px 0;
border-left: 1px solid #ccc9c9;
text-decoration: none;
color: white;
display: block;
}
.navbar li:hover, a:hover {
background-color: #444444;
}
.navbar li ul{
display: none;
height: auto;
margin: 0;
padding: 0;
}
.navbar li:hover ul{
display: block;
}
.navbar li ul li {
background-color: #444444;
}
.navbar li ul li a{
border-left: 1px solid #444444;
border-right: 1px solid #444444;
border-top: 1px solid #c9d4d8;
border-bottom: 1px solid #444444;
}
.navbar li ul li a:hover{
background-color: #a3a1a1;
}
</style>
</head>
<body>
<h2>Создайте модальное окно</h2>
<div id="wrap">
<ul class="navbar">
<li>
<a href="#">Главная страница</a>
</li>
<li>
<a href="#">Учебники</a>
<ul>
<li><a href="#">Изучите HTML</a></li>
<li><a href="#">Изучите CSS</a></li>
<li><a href="#">Изучите JavaScript</a></li>
<li>
<a href="#">Изучите PHP</a>
</li>
</ul>
</li>
<li>
<a href="#">Тесты</a>
<ul>
<li><a href="#" >Основы CSS</a></li>
<li><a href="#">Основы PHP</a></li>
<li><a href="#">Основы JavaScript</a></li>
</ul>
</li>
<li>
<a href="#">Инструменты</a>
<ul>
<li><a href="#">Геометрические изображения</a></li>
<li><a href="#">Color Picker</a></li>
<li><a href="#">Генератор паролей</a></li>
<li><a href="#">HTML редактор</a></li>
<li>
<a href="#">Base 64</a>
</li>
</ul>
</li>
<li>
<a href="#">Сниппеты</a>
<ul>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">Angular</a></li>
<li>
<a href="#">Java</a>
</li>
</ul>
</li>
<li>
<a href="#">String Functions</a>
<ul>
<li><a href="#">Реверс строки</a></li>
<li><a href="#">URL кодер</a></li>
<li><a href="#">Удаление пустых строк</a></li>
<li><a href="#">Подсчет слов в строке</a></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
Рассмотрим другой пример выпадающего меню навигации:
Пример
<!DOCTYPE html>
<html>
<head>
<title>Заголовок документа</title>
<style>
*{
margin: 0;
padding: 0;
list-style-type: none;
box-sizing: border-box;
}
body{
background: url('https://images.unsplash.com/photo-1532210317995-cc56d90177d9?ixlib=rb-1.2.1&auto=format&fit=crop&w=1050&q=80') center;
background-size: cover;
min-height: 600px;
font-family: 'Helvetica Neue', sans-serif;
}
nav{
text-align: center;
}
.menu{
display: inline-block;
}
.menu > li{
float: left;
color: #e298e1;
width: 140px;
height: 40px;
line-height: 40px;
background: rgba(0,0,0, 0.7);
cursor: pointer;
font-size: 17px;
}
.sub-menu{
transform: scale(0);
transform-origin: top center;
transition: all 300ms ease-in-out;
}
.sub-menu li{
font-size: 14px;
background: rgba(0,0,0, 0.8);
padding: 8px 0;
color: white;
border-bottom: 1px solid rgba(255,255,255, 0.2);
transform: scale(0);
transform-origin: top center;
transition: all 300ms ease-in-out;
}
.sub-menu li:last-child{
border-bottom: 0;
}
.sub-menu li:hover{
background: black;
}
.menu > li:hover .sub-menu li{
transform: scale(1);
}
.menu > li:hover .sub-menu{
transform: scale(1);
}
</style>
</head>
<body>
<nav>
<ul class="menu">
<li>
Италия
<ul class="sub-menu">
<li>Рим</li>
<li>Милан</li>
<li>Венеция</li>
<li>Лацио</li>
<li>Флоренция</li>
</ul>
</li>
<li>
Франция
<ul class="sub-menu">
<li>Париж</li>
<li>Бурдо</li>
<li>Марсель</li>
<li>Тулуза</li>
</ul>
</li>
<li>
Испания
<ul class="sub-menu">
<li>Мадрид</li>
<li>Валенсия</li>
<li>Барселона</li>
<li>Севилья</li>
<li>Бильбао</li>
</ul>
</li>
<li>
Россия
<ul class="sub-menu">
<li>Москва</li>
<li>Санкт-Петербург</li>
<li>Тула</li>
<li>Чехов</li>
</ul>
</li>
<li>
Германия
<ul class="sub-menu">
<li>Берлин</li>
<li>Мюнхен</li>
<li>Франкфурт</li>
<li>Гамбург</li>
<li>Дрезден</li>
</ul>
</li>
</ul>
</nav>
</body>
</html>