我如何在codeIgniter中创建活动菜单,它不是在悬停时,而是在单击时,例如,如果我们在某个类别中,菜单中的那个项目被突出显示,如何在CI中完成?
问问题
1740 次
2 回答
1
取决于您的路由和菜单生成脚本。最简单的方法是检查 uri 中的段。例如对于静态菜单你可以这样做:
<?php $class = $this->uri->segment(1)=="someController"?"highlighted":""; ?>
<a href="/index.php/someController/" class="<?php echo $class; ?>">Menu item</a>
于 2012-05-08T10:38:57.300 回答
0
这里涉及几个步骤。
首先,您需要确定哪个是“当前”菜单项或类别。如果您可以构建您的网站,以便您的 URL 结构与您的顶级菜单项(和/或您的类别)之间存在直接关系,那么这将有很大帮助。
您需要一段通用的代码来生成您的主菜单。此代码可以遍历菜单项标题数组以生成菜单的 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>
}
于 2012-05-08T11:27:29.150 回答