Фон каждого пункта меню разный.
Как сделать у каждого пункта меню свой цвет фона
При наведении на определенный пункт меню, данный пункт подсвечивался своим цветом.
При переходе на этот пункт меню его цвет оставался таким же как и при наведении.
Подскажите, вообще можно реализовать такое со стандартным меню.
Спасибо за внимание.
Надеюсь кто-то поможет вам более детально разобрать все шаги.
1. Привязку стиля к меню делаем через id меню, неудобно, но пока не нашел другого решения.
В классе class="selected" добавляем следующий параметр "{$item.id}" У меня получилось следующее:
{if $item.NSLevel <= 1} <li {if ($menuid==$item.id || ($currentmenu.NSLeft > $item.NSLeft && $currentmenu.NSRight < $item.NSRight)) && $item.NSLevel<=1}class="selected_{$item.id} "{/if}> {/if} {if $item.NSLevel <= 1} <a href="{$item.link}" target="{$item.target}" {if $menuid==$item.id}class="selected_{$item.id}"{/if} title="{$item.title|escape:'html'}"> {if $item.iconurl}<img src="/images/menuicons/{$item.iconurl}" alt="{$item.title|escape:'html'}" />{/if} {$item.title} </a> {else}
#topmenu .menu li.selected{ background:url(../images/menubg.jpg) repeat-x left top #375E93; }
#topmenu .menu li.selected_10{ background:#000000; } #topmenu .menu li.selected_13{ background:#ffffff; }
3. Не разобрался как сделать у каждого пункта меню свой стиль "a:hover" кто сможет подсказать где копать, буду весьма благодарен:)
{if $item.NSLevel == $last_level}</li>{/if} {math equation="x - y" x=$last_level y=$item.NSLevel assign="tail"} {section name=foo start=0 loop=$tail step=1} </li></ul> {/section}
Хотел привязать li к id меню и создать соответствующие стили. Подскажите как это реализовать.
#topmenu .menu li.selected_10:hover{ background:#000000; } #topmenu .menu li.selected_13:hover{ background:#ffffff; }
#topmenu .menu li.selected_10:hover a{ background:#000000; } #topmenu .menu li.selected_10:hover a:hover{ background:#ffffff;
Не разобрался как сделать у каждого пункта меню свой стиль "a:hover" кто сможет подсказать где копать, буду весьма благодарен:)
можно задать !important если стили перебиваются, также для тега а тоже не мешало бы стили пробить
#topmenu .menu li.selected_10:hover{ background:#000000; } #topmenu .menu li.selected_13:hover{ background:#ffffff; }
#topmenu .menu li.selected_10:hover a{ background:#000000; } #topmenu .menu li.selected_10:hover a:hover{ background:#ffffff;
Я видимо не правильно выразился, то что вы выше написали работает только для пунктов меню с классом "selected", а как сделать тоже самое для пунктов меню без класса "selected"?
Не могу найти где формируется пункт меню, т.е. где открывается тег <li>, нашел где закрывается: Помогите разобраться в коде.
<li {if ($menuid==$item.id || ($currentmenu.NSLeft > $item.NSLeft && $currentmenu.NSRight < $item.NSRight)) && $item.NSLevel<=1}class="selected"{/if}>
<li class="color{$item.id} {if ($menuid==$item.id || ($currentmenu.NSLeft > $item.NSLeft && $currentmenu.NSRight < $item.NSRight)) && $item.NSLevel<=1}selected{/if}>"
/*Для всех остальных*/ .menu li{background: blue;} .menu li:hover{background: black;} /*Для главной*/ .menu > li:first-child{background-color: red;} .menu > li:first-child:hover{background-color: black;} /*Определенные цвета*/ .menu > li.color7{background-color: orange;} .menu > li.color7:hover{background-color: black;} .menu > li.color8{background-color: pink;} .menu > li.color8:hover{background-color: black;}
.menu > li.color7.selected{background-color: black;}
Измените ее на
Код PHP:
<li class="color{$item.id} {if ($menuid==$item.id || ($currentmenu.NSLeft > $item.NSLeft && $currentmenu.NSRight < $item.NSRight)) && $item.NSLevel<=1}selected{/if}>"
Все работает, спасибо большое, только пункты меню, кроме "Главная" стали некликабельными.
Ковычки надо было поставить перед знаком — ">" т.е. так:
<li class="color{$item.id} {if ($menuid==$item.id || ($currentmenu.NSLeft > $item.NSLeft && $currentmenu.NSRight < $item.NSRight)) && $item.NSLevel<=1}selected{/if}">
Нашел в чем причина: в style.css
#topmenu .menu li a:hover, { background:url(../images/menubg-hover.jpg) repeat-x center top #375E93; color:#000 !important; text-shadow:0 1px 0px #FFF !important; }
Удалил эту запись и добавил в
.menu > li.color8:hover{background-color: black !important;}
Теперь все работает! Спасибо+