Создаем выпадающее меню с помощью CSS3
Навигация на сайте это неотъемлемый элемент, ведь с помощью нее пользователь с легкостью может перейти к необходимой информации, не задаваясь поиском информации теряя на это драгоценное время. Но порой необходимо поместить в меню достаточно много информации, а это не весьма удобно, ведь меню станет достаточно объемным и будет занимать много места, а это плохо скажется на визуальном оформлении сайта. Что же делать в таком случае? выход достаточно простой, нам необходимо создать выпадающее меню для сайта, которое будет отлично вписываться в дизайн сайта.
Кроме того меню красочное, что позволяет ему отлично вписаться в любой дизайн сайта, кроме этого можно легко настроить навигацию под себя. Кроме этого будут применены маленькие иконки, для этого достаточно задействовать элемент :before в таблице. И так, приступим.
Шаг 1. HTML
Для разметки нам необходимо создать неупорядоченный список, в середине которого будет находиться класс с иконкой, далее нам необходимо построить структуру второго списка, который будет появляться при наведении курсора мышки.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<nav id="colorNav"> <ul> <li class="green"> <a href="#" class="icon-home"></a> <ul> <li><a href="#">Подпункт 1</a></li> <li><a href="#">Подпункт 2</a></li> <!-- Другие выпадающие пункты --> </ul> </li> <!-- Другие пункты меню --> </ul> </nav> |
С разметкой закончили, теперь перейдем к стилям.
Шаг 2. CSS
Как вы заметили с разметки выше у нас есть неупорядоченные списки вложенные в основной элемент ul
. По этому нам не нужно, чтобы стили верхнего элемента ul
каскадно применялись к вложенным спискам.
1 2 3 4 |
#colorNav > ul{ width: 450px; margin:0 auto; } |
Далее установим ширину поля для неупорядоченного списка, который является подпунктом #colorNav.
1 2 3 4 5 6 7 8 9 |
#colorNav > ul > li{ /* стили только для элементов li верхнего уровня */ list-style: none; box-shadow: 0 0 10px rgba(100, 100, 100, 0.2) inset,1px 1px 1px #CCC; display: inline-block; line-height: 1; margin: 1px; border-radius: 3px; position:relative; } |
Теперь установим значение inline-block для свойства display, при этом элемент ссылки содержит иконку, которая определяется шрифтом Font Awesome.
1 2 3 4 5 6 |
#colorNav > ul > li > a{ color:inherit; text-decoration:none !important; font-size:24px; padding: 25px; } |
Создаем анимацию для выпадающего списка и его перемещения, при наведении курсора мыши будем анимировать изменение максимальной высоты.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#colorNav li ul{ position:absolute; list-style:none; text-align:center; width:180px; left:50%; margin-left:-90px; top:70px; font:bold 12px 'Open Sans Condensed', sans-serif; /* Важно для анимации вывода/скрытия */ max-height:0px; overflow:hidden; -webkit-transition:max-height 0.4s linear; -moz-transition:max-height 0.4s linear; transition:max-height 0.4s linear; } |
Теперь необходимо запустить анимацию.
1 2 3 |
#colorNav li:hover ul{ max-height:200px; } |
Теперь зададим стили для выпадающего списка.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#colorNav li ul li{ background-color:#313131; } #colorNav li ul li a{ padding:12px; color:#fff !important; text-decoration:none !important; display:block; } #colorNav li ul li:nth-child(odd){ /* полоски зебры */ background-color:#363636; } #colorNav li ul li:hover{ background-color:#444; } #colorNav li ul li:first-child{ border-radius:3px 3px 0 0; margin-top:25px; position:relative; } #colorNav li ul li:first-child:before{ /* указатель подсказки */ content:''; position:absolute; width:1px; height:1px; border:5px solid transparent; border-bottom-color:#313131; left:50%; top:-10px; margin-left:-5px; } #colorNav li ul li:last-child{ border-bottom-left-radius:3px; border-bottom-right-radius:3px; } |
Далее разукрасим элементы меню.
1 2 3 4 5 6 7 8 9 10 11 12 |
#colorNav li.green{ /* Цвет пункта меню */ background-color:#00c08b; /* Цвет иконки */ color:#127a5d; } #colorNav li.red{ background-color:#ea5080;color:#aa2a52;} #colorNav li.blue{ background-color:#53bfe2;color:#2884a2;} #colorNav li.yellow{ background-color:#f8c54d;color:#ab8426;} #colorNav li.purple{ background-color:#df6dc2;color:#9f3c85;} |
Со стилями закончили, ничего сложного.
Вот и все. Готово!
Материал взят из зарубежного источника. И представлен исключительно в ознакомительных целях.
Читайте также:
Опубликовал Cooper 27.10.2012 в 23:16, в категории CSS. Вы можете следить за комментариями через RSS 2.0. Вы можете перейти в конец записи и оставить комментарий. Пинги запрещены. |