Codeigniter - 添加“活动”css类来链接,如何?

时间:2009-12-22 17:41:28

标签: php css codeigniter

将“活动”类添加到链接的最快捷,最简单的方法是什么,可以设置样式?我正在开发CI中的应用程序,我想要一种快速简单的方法来自动执行此操作。

jQuery也是一个选项......

5 个答案:

答案 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";

也许这不是你的解决方案。但它适用于我。