Трехуровневое выпадающее меню на CSS
Материал из Umicms
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)%xВажно, чтобы вторым параметром было указано число не меньше 3-х, иначе выпадание работать не будет. Также, следим за тем, чтобы у страниц, выводящихся в меню, были проставлены опции "показывать подменю" и "меню всегда развернуто".
