Открыть меню    

Выпадающее меню на CSS

Я редко встречаюсь с выпадающими меню, которые ведут себе как выпадающие списки, хотя они мне очень нравятся. Так же я заметил, что люди часто используют Javascript для достижения этого эффекта. Как ни странно, есть более простой способ создать на сайте выпадающее меню - при помощи CSS.

выпадающее меню

Вы, вероятно, знакомы со структурой меню; меню обычно создаются с помощью вложенных неупорядоченных списков (тег ul) .

Показ/скрытие элемента меню осуществляется с помощью простого CSS ul > li:hover ul (Селектор типа ul > li:hover ul обозначит элемент ul, который является потомком тега li, который, в свою очередь, является прямым потомком тега ul. Более подробно о селекторах CSS можно узнать в статье CSS селекторы.) С помощью этих селекторов описывается поведение всех элементов потомков меню. Создавая выпадающее меню, помимо display:block, устанавливаем еще такие стили, как цвет фона и т. д. Единственное различие между обычными меню и выпадающими меню заключается в том, что мы не устанавливаем стили для вложенных ul, а назначаем стиль непосредственно тегу li, каторый как бы "парит" (ul > li:hover).

CSS

выпадающее меню сдланное как список
#header
{
height:120px; position:relative; background: 
transparent url(header_bkg.png) repeat-x scroll top center;
}
#nav
{
margin:0px; padding:0px; position:absolute;
top: 70px; display:block;
}
#nav > li 
{
list-style-type:none; float:left; display:block;
margin:0px 10px;  position:relative; padding:10px; width:100px;
}
#nav > li:hover ul { display:block; }
#nav > li:hover 
{
background-color:#808080; -moz-border-radius:10px;
-webkit-border-radius:10px; 
}
#nav li ul { margin:0px; padding:0px; display:none;}
#nav li ul li { list-style-type:none; margin:10px 0 0 0;}
#nav li ul li a 
{ 
display:block; padding:5px 10px; 
color:#A2E200; text-decoration:none;
} 
#nav li ul li:hover a 
{
background-color:#606060; -moz-border-radius:5px;
-webkit-border-radius:5px;
} 
#nav li span 
{ cursor:pointer; margin:0px 10px; font-weight:bold; } 

Вот, как это делается c помощью CSS. Я не понимаю, как можно предпочесть Javascript такому способу, разве только для добавления анимации и других эффектов. Заметьте, что этот код не работает в IE6 (бедный браузер не знает, что значит ul > li).

Источник jankoatwarpspeed.com (выпадающее меню на CSS).

Комментарии к статье

Добавить комментарий