2012-05-08 72 views

回答

1

取決於您的路由和菜單生成腳本。 Esiest方法是檢查uri中的段。例如對於靜態菜單您可以這樣做:

<?php $class = $this->uri->segment(1)=="someController"?"highlighted":""; ?> 
<a href="/index.php/someController/" class="<?php echo $class; ?>">Menu item</a> 
0

這裏涉及幾個步驟。

首先,您需要確定哪個是'當前'菜單項或類別。如果您可以構建您的網站,以便您的網址結構和頂級菜單項(和/或您的類別)之間有直接關係,那麼這將有很大幫助。

您將需要一段代碼生成主菜單。此代碼可以遍歷菜單項標題數組來生成菜單的HTML。如果數組曾經爲URL段和值,菜單項文本鍵...

$menuItems = Array(
    "/home" => "Home", 
    "/products" => "Products", 
    "/faq" => "FAQ", 
    "/aboutus" => "About Us" 
); 

(包括領先的斜槓爲清楚哪個是URI段,哪些是隻菜單標題 - 你通常會省略前導斜槓)

...然後,在迭代時,可以根據當前URL的相關段檢查每個項目。

其次,已經計算出哪些是當前項目,您可以添加一個css類到相關的HTML元素。

例如

$menuHtml = "<ul class='menu'>\r\n"; 
foreach($menuItems as $segment => $title) { 
    if($segment == $this->uri->segment(1)) { 
     $menuHTML .= "<li class='current'>$title</li>"; 
    } else { 
     $menuHTML .= "<li>$title</li>\r\n"; 
    } 
} 
$menuHtml .= "</ul>"; 

你會那麼需要在CSS中應用所需的高亮風格的li.current元素:

li.current { 
    <your-highlight-css-styles-here> 
}