Codeigniter - добавить "активный" класс CSS для ссылки, как? - PullRequest
6 голосов
/ 22 декабря 2009

Какой самый быстрый и простой способ добавить «активный» класс в ссылку, чтобы его можно было стилизовать? Я занимаюсь разработкой приложения на CI, и я хотел бы быстро и легко сделать это автоматически.

JQuery тоже вариант ...

Ответы [ 5 ]

13 голосов
/ 03 января 2010

Вы действительно должны использовать класс URI CodeIgniter, чтобы сделать это вместо $ _SERVER ['REQUEST_URI']

$ this-> uri-> uri_string ()


if ( $this->uri->uri_string() == '/contact' )

^^ это предпочтительный способ сделать что-то из-за некоторых сложностей, которые могут возникнуть с функциями маршрутизации codeigniter

6 голосов
/ 22 декабря 2009

Если у вас много элементов навигации, вы можете сделать это таким образом (очень упрощенно) ...

<ul>
<li<?= if ( $_SERVER['REQUEST_URI'] == '/contact' ): ?> id="active"<?php endif; ?>><a href="">contact</a></li>
</ul>

Вам нужно будет отредактировать его для своих нужд ...

Если у вас не так много элементов навигации, проще назначить каждой странице идентификатор тела, а затем использовать 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>
6 голосов
/ 22 декабря 2009

Зависит от того, как вы выводите ссылку HTML.

Если вы используете модуль URL Helper , то вы можете вызвать функцию anchor() для создания ссылок и передать ей массив атрибутов в качестве третьего параметра, то есть:

$this->load->helper('url');
echo anchor('url/path', 'Click here', array('class' => 'active'));

Если вы просто выводите HTML вручную в своих шаблонах / представлениях, очевидно, вы можете просто создать атрибут класса в HTML.

4 голосов
/ 29 апреля 2014

Вы можете сделать это, создав помощника со следующим

<?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>
1 голос
/ 11 мая 2015

Чтобы добавить активный класс (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";

Может быть, это не ваше решение. но у меня это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...