将“活动”类添加到链接的最快捷,最简单的方法是什么,可以设置样式?我正在开发CI中的应用程序,我想要一种快速简单的方法来自动执行此操作。
jQuery也是一个选项......
答案 0 :(得分:13)
您应该使用CodeIgniter URI类来代替$ _SERVER ['REQUEST_URI']
$这 - > URI-> uri_string()
if ( $this->uri->uri_string() == '/contact' )
由于codeigniter的路由功能可能会出现一些复杂性,^^是首选方法
答案 1 :(得分:6)
取决于您如何输出链接HTML。
如果您正在使用URL Helper模块,那么您可以调用anchor()
函数来创建链接,并将一组属性作为第三个参数传递给它,即:
$this->load->helper('url');
echo anchor('url/path', 'Click here', array('class' => 'active'));
如果你只是在模板/视图中手动输出HTML,显然你可以在HTML中自己创建class属性。
答案 2 :(得分:6)
如果您有很多导航项目,可以这样做(非常简化)......
<ul>
<li<?= if ( $_SERVER['REQUEST_URI'] == '/contact' ): ?> id="active"<?php endif; ?>><a href="">contact</a></li>
</ul>
你必须根据自己的需要进行编辑......
如果您没有那么多导航项,则更简单的方法是为每个页面提供一个正文ID,然后使用css使其处于活动状态。
<style type="text/css">
body#contact #contact-nav { font-weight:bold; }
</style>
<body id="contact">
<ul id="navigation">
<li id="contact-nav"><a href="">contact</a></li>
</ul>
答案 3 :(得分:4)
您可以通过以下
创建帮助程序来实现此目的<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if ( ! function_exists('active_link'))
{
function active_link($controller)
{
$CI =& get_instance();
$class = $CI->router->fetch_class();
return ($class == $controller) ? 'active' : '';
}
}
然后将其应用于菜单视图
<li class="<?php echo active_link('services'); ?>"><a href="<?php echo base_url();?>services">Services</a></li>
答案 4 :(得分:1)
要将活动类(class =“active”)添加到链接,我已经这样做了:
在视图中
<ul class="nav nav-tabs">
<li id="button_home" class='<?php echo $home;?>'><?php echo anchor('pages/index','Home');?></li>
<li id="button_about" class='<?php echo $about;?>'><?php echo anchor('pages/about','About')?></li>
</ul>
在控制器中
$data['home']="active";
也许这不是你的解决方案。但它适用于我。