Яндекс.Метрика

Дизайн-журнал №1. Актуальная информация для дизайнеров, веб дизайнеров, программистов и разработчиков сайтов.

Выпадающее многоуровневое меню с использованием CSS3

27 августа 2015 | Опубликовано в css | 1 Комментарий »

Все так же популярны меню на чистом CSS3. В основном это меню на структуре ul – li. В этом уроке мы продолжим создавать интересные меню. Это меню будет выпадающим многоуровневым, а его вложенные уровни будут появляться не при наведении указателя мыши, а при нажатии на пункт меню. Вот каким будет конечный результат нашей работы:

 

 


Вот демонстрация работы и исходный код:

Демонстрация работыСкачать исходный код

Скачайте пример, и приступим к работе.

Шаг 1. Код HTML 

Как обычно начнем с кода HTML.

Вот полный код HTML этого меню. Как Вы видите, это многоуровневое меню. Надеюсь, Вы без проблем разберетесь в коде. Меню создано из элементов ul – li.

index.html

<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<div>
<ul id="nav">
<li><a href="http://www.script-tutorials.com/">Home</a></li>
<li><a class="fly" href="#" tabindex="1">Tutorials</a>
<ul class="dd">
<li><a href="http://www.script-tutorials.com/category/html-css/">HTML / CSS</a></li>
<li><a class="fly" href="#" tabindex="1">JS / jQuery</a>
<ul>
<li><a href="http://www.script-tutorials.com/category/jquery/">jQuery</a></li>
<li><a href="http://www.script-tutorials.com/category/javascript/">JS</a></li>
</ul>
</li>
<li><a href="http://www.script-tutorials.com/category/php/">PHP</a></li>
<li><a href="http://www.script-tutorials.com/category/mysql/">MySQL</a></li>
<li><a href="http://www.script-tutorials.com/category/xslt/">XSLT</a></li>
<li><a href="http://www.script-tutorials.com/category/ajax/">Ajax</a></li>
</ul>
</li>
<li><a class="fly" href="#" tabindex="1">Resources</a>
<ul class="dd">
<li><a class="fly" href="#" tabindex="1">By category</a>
<ul>
<li><a href="http://www.script-tutorials.com/category/php/">PHP</a></li>
<li><a href="http://www.script-tutorials.com/category/mysql/">MySQL</a></li>
<li><a class="fly" href="#" tabindex="1">Menu1</a>
<ul>
<li><a href="#">Menu1</a></li>
<li><a href="#">Menu2</a></li>
<li><a href="#" tabindex="1">Menu3</a>
<ul>
<li><a href="#">Menu31</a></li>
<li><a href="#">Menu32</a></li>
<li><a href="#">Menu33</a></li>
<li><a href="#">Menu34</a></li>
</ul>
</li>
<li><a href="#">Menu4</a></li>
</ul>
</li>
<li><a href="http://www.script-tutorials.com/category/ajax/">Ajax</a></li>
</ul>
</li>
<li><a class="fly" href="#" tabindex="1">By tag name</a>
<ul>
<li><a href="http://www.script-tutorials.com/tag/captcha/">captcha</a></li>
<li><a href="http://www.script-tutorials.com/tag/gallery/">gallery</a></li>
<li><a href="http://www.script-tutorials.com/tag/animation/">animation</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="http://www.script-tutorials.com/about/">About</a></li>
<li><a href="http://www.script-tutorials.com/click-action-multilevel-css3-dropdown-menu/">Go Back To The Tutorial</a></li>
</ul>
</div>

Шаг 2. Код CSS 

Вот использованные стили CSS. Первые два селектора — верстка страницы примера. Все остальное относится к меню.

css/style.css

/* стили страницы примера */
body {
background:#eee;
margin:0;
padding:0;
}
.example {
background:#fff url(../images/tech.jpg);
width:770px;
height:570px;
border:1px #000 solid;
margin:20px auto;
padding:15px;
border-radius:3px;
-moz-border-radius:3px;
-webkit-border-radius:3px;
}

/* стили главного меню */
#nav,#nav ul {
background-image:url(../images/tr75.png);
list-style:none;
margin:0;
padding:0;
}
#nav {
height:41px;
padding-left:5px;
padding-top:5px;
position:relative;
z-index:2;
}
#nav ul {
left:-9999px;
position:absolute;
top:37px;
width:auto;
}
#nav ul ul {
left:-9999px;
position:absolute;
top:0;
width:auto;
}
#nav li {
float:left;
margin-right:5px;
position:relative;
}
#nav li a {
background:#c1c1bf;
color:#000;
display:block;
float:left;
font-size:16px;
padding:8px 10px;
text-decoration:none;
}
#nav > li > a {
-moz-border-radius:6px;
-webkit-border-radius:6px;
-o-border-radius:6px;
border-radius:6px;

overflow:hidden;
}
#nav li a.fly {
background:#c1c1bf url(../images/arrow.gif) no-repeat right center;
padding-right:15px;
}
#nav ul li {
margin:0;
}
#nav ul li a {
width:120px;
}
#nav ul li a.fly {
padding-right:10px;
}

/* стили при наведении указателя мыши */
#nav li:hover > a {
background-color:#858180;
color:#fff;
}

/* стили активного элемента*/
#nav li a:focus {
outline-width:0;
}
/* стили всплывающего элемента */
#nav li a:active + ul.dd,#nav li a:focus + ul.dd,#nav li ul.dd:hover {
left:0;
}
#nav ul.dd li a:active + ul,#nav ul.dd li a:focus + ul,#nav ul.dd li ul:hover {
left:140px;
}

Шаг 3. Изображения 

В этом меню используются только три изображения: arrow.gif, tech.jpg и tr75.png. Первые два очень маленькие, а последнее — просто фоновое изображение, так что они не выложены в тексте урока. Вы можете скачать их вместе с исходным кодом.

Демонстрация работыСкачать исходный код

Заключение 

Надеемся, Вам понравился этот урок и он Вам пригодится.

Изначальная идея дизайна была взята у Stu Nicholls.

Автор урока Andrew Prikaznov

Перевод — Дежурка

Смотрите также:




Комментарии

  1. Aborrol
    Thumb up Thumb down 0

    Жаль, что оно не адаптивное

[an error occurred while processing the directive]


[an error occurred while processing the directive]