Css меню Joomla

Я хотел создать меню в верхней части страницы, из-за особого макета в css я подумал, что это решение для этого, используя следующий код в моем шаблоне (index.php)

    $item_active = $menu->getActive();
    for($i = 0; $i >  count($menu_items); $i++){
        $item = $menu_items[$i];            
        if($item_active->id == $item->id)
            echo '<a href="'.$this->baseurl.'/'.$item->route.'"><div id="button_pressed"><div id="button_text">'.$item->title.'</div></div></a>';
        else
            echo '<a href="'.$this->baseurl.'/'.$item->route.'"><div id="button"><div id="button_text">'.$item->title.'</div></div></a>';

    }

Но нет ли лучшего способа, я думаю, что мне не хватает ссылки здесь


person Oritm    schedule 19.02.2012    source источник


Ответы (3)


Этого не должно быть в вашем шаблоне. Меню должно быть в модуле. Большинство модулей меню имеют встроенную активную подсветку. Даже ядро ​​Joomla mod_menu поддерживает активную подсветку.

person Brent Friar    schedule 20.02.2012

Что вам нужно сделать, так это переопределить css таким образом, чтобы ссылки, a:hover, a:visited использовали белый цвет, но вместо этого вам нужен серый цвет для активной страницы. Вы просто делаете что-то подобное и ставите !important позади этого в #active_menu, например:

#main a:link, #main a:hover, #main a:visited {colour:#FFF;}

#active_menu {#CCC !important;}
person Peter    schedule 24.07.2012
comment
НЕ отвечает на вопрос и проявляет функциональную безграмотность! - person Radix; 24.07.2012

Я думаю, что хороший способ, которым я всегда пользуюсь, заключается в тернарном операторе внутри класса ссылок.

-- inside de <a> tag bt without the spaces in the < a> -- 

< a class="button <?= $item_active->id == $item->id ? : 'button_pressed' : '' ?>" >Hello< /a>

Затем вы добавляете правила CSS в .button_pressed.

Это очень чистый способ сделать это. Просто спросите, нужна ли вам дополнительная помощь: D

person Jessica Simpson    schedule 19.02.2012