Выпадающее меню с закладками
Выпадающее меню с разделением первого уровня на секции с помощью закладок. Часть работы будет выполнять jQuery. Всего в меню имеется три уровня.
Разметка HTML
Закладки располагаются в отдельном контейнере. Текущая активная закладка имеет класс "active". Структурная связь между закладками и пунктами меню осуществляется с помощью атрибута id и кода jQuery. Сами пункты меню формируются на основе неупорядоченного списка.
<!-- Элементы закладок основного меню -->
<div id="tabs-container">
<ul class="tabs">
<li class="active"><a href="#">Раздел 1</a></li>
<li><a href="#">Раздел 2</a></li>
<li><a href="#">Раздел 3</a></li>
<li><a href="#">Раздел 4</a></li>
</ul>
</div>
<!-- Верхнее меню -->
<div id="nav-container">
<ul class="nav" id="1">
<!-- Элементы верхнего меню -->
<li><a href="#">Меню 1</a></li>
<li><a href="#">Меню 2</a>
<!-- Элементы подменю -->
<ul class="sub">
<li><a href="#">Подменю 2_1</a></li>
<li><a href="#">Подменю 2_2</a></li>
<li><a href="#">Подменю 2_3</a></li>
<li><a href="#">Подменю 2_4</a></li>
</ul>
</li>
. . .
</ul>
. . .
</div>
CSS
/* Стили основного меню */
/* Секция закладок */
#tabs-container {
clear:both;
font-size:11px;
height:26px;
margin:0 auto;
padding:0
}
.tabs li {
float:left;
list-style:none;
position:relative
}
.tabs li a:first-child {
margin-left:10px
}
.tabs li a {
background:#f3f3f3;
border:none;
border-left:1px solid #d5d5d5;
border-right:1px solid #d5d5d5;
border-top:1px solid #d5d5d5;
color:#333;
display:block;
margin:0 2px 0 0;
padding:6px 10px 4px
}
.tabs li.active a {
-webkit-border-radius:4px 4px 0 0;
background:#fff;
border-bottom:1px solid #fff;
border-left:1px solid #d5d5d5;
border-radius:4px 4px 0 0;
border-right:1px solid #d5d5d5;
border-top:1px solid #d5d5d5;
color:#222;
display:block;
padding:6px 10px 4px
}
.tabs li.child a {
-webkit-border-radius:0 4px 0 0;
background:#f3f3f3;
border-radius:0 4px 0 0;
color:#333;
display:block;
margin:0;
padding:6px 10px 4px
}
.tabs li a:hover {
background:#fafafa;
border-bottom:1px solid #d5d5d5;
color:#fff;
text-decoration:none
}
/* Меню первого уровня */
.tabs {
display:block;
margin:0;
padding:1px 0 2px;
position:absolute;
z-index:100
}
.tabs > li > a:hover {
background:#ececec;
color:#222
}
.tabs > li.active > a:hover {
-moz-border-radius:3px 3px 0 0;
-webkit-border-radius:3px 3px 0 0;
background:#fff;
border-bottom:1px solid #fff;
border-radius:3px 3px 0 0;
color:#222
}
/*Выпадающая навигация*/
#nav-container {
border-bottom:1px solid #d5d5d5;
border-top:1px solid #d5d5d5;
clear:both;
font-size:11px;
height:33px;
margin:0 auto;
padding:0
}
/* Меню первого и второго уровня */
.nav li {
float:left;
list-style:none;
position:relative
}
.nav li a {
background:url(images/arrow.png) no-repeat right;
border:none;
color:#222;
display:block;
margin:0 5px 0 0;
padding:5px 20px 5px 8px
}
/* Меню первого уровня */
.nav {
display:block;
margin:0;
padding:5px 0 2px;
position:absolute;
z-index:100
}
.nav > li > a:hover {
-moz-border-radius:3px 3px 0 0;
-webkit-border-radius:3px 3px 0 0;
background:#507aa5 url(images/arrow_hover.png) no-repeat right;
border-radius:3px 3px 0 0;
color:#fff;
padding:5px 20px 5px 8px
}
/* Меню второго уровня */
.nav li ul {
-moz-border-radius-bottomleft:3px;
-moz-border-radius-bottomright:3px;
-moz-border-radius-topright:3px;
-moz-box-shadow:1px 1px 1px #333;
-webkit-border-bottom-right-radius:3px;
-webkit-box-shadow:1px 1px 1px #333;
background:#507aa5;
border-bottom-left-radius:3px;
border-bottom-right-radius:3px;
border-top-right-radius:3px;
box-shadow:1px 1px 1px #333;
color:#222;
display:none;
margin:0;
padding:2px 0;
position:absolute;
width:140px
}
.nav li ul li {
width:100%
}
.nav li ul li a {
background:#507aa5;
border:none;
color:#fff;
line-height:25px;
margin:0;
padding:0 0 0 8px
}
.nav li ul li a:hover {
background:#466A90
}
.nav li ul li.strong-archive a {
border-top:1px solid #466A90;
font-weight:600
}
/* Класс добавляется с помощью jQuery */
.nav li.current > a {
-moz-border-radius:3px 3px 0 0;
-moz-box-shadow:1px 1px 1px #333;
-webkit-border-radius:3px 3px 0 0;
-webkit-box-shadow:1px 1px 1px #333;
background:#507aa5 url(images/arrow_hover.png) no-repeat right;
border-radius:3px 3px 0 0;
box-shadow:1px 1px 1px #333;
color:#fff
}
/* Обратная совместимость CSS */
.nav li:hover > ul.child {
display:block
}
jQuery
Переключение закладок и проявление выпадающих подпунктов осуществляется с помощью кода JavaScript/ В обработчиках событий мыши устанавливаются соответствующие классы и свойства.
$(document).ready(function(){
$('.tabs li a').click(function () {
$('.tabs li').removeClass('active');
$(this).parent().addClass('active');
$('.nav').hide();
var index = $('.tabs li a').index(this);
$('.nav').eq(index).show();
return false;
});
$('.nav li').has('ul').hover(function(){
$(this).addClass('current').children('ul').fadeIn();
}, function() {
$(this).removeClass('current').children('ul').hide();
});
});
Теги:
border,
radius,
solid,
background,
padding,
color,
margin,
hover,
d5d5d5,
webkit,
display,
right,
bottom,
active,
block,
уровня,
shadow,
index,
position,
507aa5,
Раздел,
Подменю,
первого,
помощью,
container,
function,
закладок,
class,
repeat,
child,
height,
arrow,
absolute,
images,
jQuery
Комментарии:
Нету комментариев для вывода...