Трехуровневое выпадающее меню на CSS
Материал из Umicms
Версия от 14:48, 6 февраля 2014; PilipenkAV (обсуждение | вклад)
1.Создаем файл menu.css со стилями, подключаем его в теге head. Следим за тем, чтобы прописываемые правила не конфликтовали с уже имеющимися на сайте.
ul#cssmenu {
margin: 0;
border: 0 none;
padding: 0;
list-style: none;
background: #003366;
height: 30px;
font: bold 12px/28px Verdana, Arial;
border-left:#003366 1px solid;
}
ul#cssmenu li {
margin: 0;
border: 0 none;
padding: 0;
float: left;
display: inline;
list-style: none;
position: relative;
height: 30px;
}
ul#cssmenu ul {
margin: 0;
border: 0 none;
padding: 0;
width: 160px;
list-style: none;
display: none;
position: absolute;
top: 30px;
left: 0;
}
ul#cssmenu ul:after {
clear: both;
display: block;
font: 1px/0px serif;
content: ".";
height: 0;
visibility: hidden;
}
ul#cssmenu ul li {
width: 170px;
float: left;
display: block !important;
display: inline;
}
/* Main Menu */
ul#cssmenu a {
border: 0px;
padding: 0 10px;
float: none !important;
float: left;
display: block;
background: #003366;
color: #FFFFFF;
font: bold 12px/28px Verdana, Arial;
text-decoration: none;
height: auto !important;
height: 1%;
}
/* Main Menu Hover */
ul#cssmenu a:hover,
ul#cssmenu li:hover a,
ul#cssmenu li.iehover a {
background: #FFFFFF;
color:#003366;
border-top:#003366 1px solid;
}
/* Second Menu */
ul#cssmenu li:hover li a,
ul#cssmenu li.iehover li a {
border-top: 2px solid #FFFFFF;
float: none;
background: #003366;
color: #FFFFFF;
}
/* Second Menu Hover */
ul#cssmenu li:hover li a:hover,
ul#cssmenu li:hover li:hover a,
ul#cssmenu li.iehover li a:hover,
ul#cssmenu li.iehover li.iehover a {
border-top: 2px solid #FFFFFF;
background: #FFFFFF;
color:#003366;
border:#003366 1px solid;
}
ul#cssmenu ul ul {
display: none;
position: absolute;
top: 0;
left: 170px;
}
ul#cssmenu li:hover ul ul,
ul#cssmenu li.iehover ul ul {
display: none;
}
ul#cssmenu li:hover ul,
ul#cssmenu ul li:hover ul,
ul#cssmenu li.iehover ul,
ul#cssmenu ul li.iehover ul {
display: block;
}
2.Создаем шаблон tpls/content/menu/drop.tpl со следующим содержанием:
<?php
$FORMS = Array();
$FORMS['menu_block_level1'] = <<<END
<ul id="cssmenu">
%lines%
</ul>
END;
$FORMS['menu_line_level1'] = <<<END
<li><a href="%link%">%text%</a>
%sub_menu%
</li>
END;
$FORMS['menu_line_level1_a'] = <<<END
<li><a href="%link%">%text%</a>
%sub_menu%
</li>
END;
$FORMS['menu_block_level2'] = <<<END
<ul>
%lines%
</ul>
END;
$FORMS['menu_line_level2'] = <<<END
<li><a href="%link%">%text%</a>
%sub_menu%
</li>
END;
$FORMS['menu_line_level2_a'] = <<<END
<li><a href="%link%">%text%</a>
%sub_menu%
</li>
END;
$FORMS['menu_block_level3'] = <<<END
<ul>
%lines%
</ul>
END;
$FORMS['menu_line_level3'] = <<<END
<li><a href="%link%">%text%</a></li>
END;
$FORMS['menu_line_level3_a'] = <<<END
<li><a href="%link%">%text%</a></li>
END;
?>
3.Прописываем в шаблоне страницы макрос вывода меню
%content menu('drop', 3)%
Важно, чтобы вторым параметром было указано число не меньше 3-х, иначе выпадание работать не будет. Также, следим за тем, чтобы у страниц, выводящихся в меню, были проставлены опции "показывать подменю" и "меню всегда развернуто".