如何在codeIgniter中创建活动菜单,它不是在悬停时,而是在单击时,例如,如果我们在某个类别中,菜单中的项目突出显示,如何在CI中完成?
答案 0 :(得分:1)
取决于您的路由和菜单生成脚本。最简单的方法是检查uri中的段。例如,对于静态菜单,您可以执行以下操作:
<?php $class = $this->uri->segment(1)=="someController"?"highlighted":""; ?>
<a href="/index.php/someController/" class="<?php echo $class; ?>">Menu item</a>
答案 1 :(得分:0)
这里涉及几个步骤。
首先,您需要确定哪个是“当前”菜单项或类别。如果您可以构建您的网站,以便您的网址结构与顶级菜单项(和/或您的类别)之间存在直接关系,那么这将有很大帮助。
您需要一个生成主菜单的常用代码段。此代码可以遍历一系列菜单项标题以生成菜单的HTML。如果数组具有URL段的键和菜单项文本的值...
$menuItems = Array(
"/home" => "Home",
"/products" => "Products",
"/faq" => "FAQ",
"/aboutus" => "About Us"
);
(为了清楚起见,包括哪些是URI段以及仅是菜单标题的前导斜杠 - 您通常会省略前导斜杠)
...然后,当您迭代时,您可以根据当前网址的相关细分来检查每个项目。
其次,在解决了当前项目后,可以将css类添加到相关的HTML元素中。
e.g。
$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>
}