如何最快最简单地为链接添加“active”类,以便进行样式设置?我正在使用CI开发应用程序,希望能够自动快速地完成此操作。
jQuery也是一种选择...
如何最快最简单地为链接添加“active”类,以便进行样式设置?我正在使用CI开发应用程序,希望能够自动快速地完成此操作。
jQuery也是一种选择...
你应该使用CodeIgniter URI类来完成这个任务,而不是使用$_SERVER['REQUEST_URI']。
$this->uri->uri_string()
if ( $this->uri->uri_string() == '/contact' )
^^ 这种方式是优选的,因为在使用CodeIgniter路由功能时可能会出现一些复杂性
这取决于您如何输出链接HTML。
如果您使用的是URL Helper模块,则可以调用anchor()
函数创建您的链接,并将属性数组作为第三个参数传递,例如:
$this->load->helper('url');
echo anchor('url/path', 'Click here', array('class' => 'active'));
<ul>
<li<?= if ( $_SERVER['REQUEST_URI'] == '/contact' ): ?> id="active"<?php endif; ?>><a href="">contact</a></li>
</ul>
你需要根据自己的需求进行编辑...
如果导航项不太多,一种更简单的方法是给每个页面一个body 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>
您可以通过创建帮助器以以下方式完成此操作
<?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>
<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";