如何在 codeigniter 中将 class="active" 设置为导航菜单?
Posted
技术标签:
【中文标题】如何在 codeigniter 中将 class="active" 设置为导航菜单?【英文标题】:How can I set class="active" to navigation menu in codeigniter? 【发布时间】:2015-08-02 17:28:56 【问题描述】:我刚开始成为一名网络开发人员。现在我第一次创建了一个动态网站。我不知道如何将class="active"
设置为导航菜单。
这是我的菜单代码:
<li>
<a href="<?php echo base_url(); ?>patient/createpatient"><i class="fa fa-users fa-lg"></i> Create Patient </a>
</li>
<?php ?>
<li>
<a href="<?php echo base_url(); ?>patient/listpatient"><i class="glyphicon glyphicon-list-alt fa-lg"> </i> List Patients </a>
</li>
<?php if( $usertype == "Admin")?>
<li>
<a href="<?php echo base_url(); ?>user/"><i class="fa fa-list fa-lg"> </i> List Users </a>
</li>`
【问题讨论】:
@Craig 我在style.css
中设置了下面的内容,但它不起作用
li a.active font-weight: bold; background-color: #53BEC5;
@Craig
这只适用于我的代码。 @saty 已将活动类添加到图标,而不是链接。
@Craig 它只适用于两个项目。最后一个它不起作用。我尝试对其进行多次测试,但仍然存在问题。 <a href="<?php echo site_url('user/'); ?>" class="<?php if($this->uri->uri_string() =="user/'') echo 'active'; ?>"><i class="fa fa-list fa-lg"></i> List Users</a>
删除“user/”的尾部斜杠,看看是否有帮助。
【参考方案1】:
您可以使用$this->uri->segment();
<li>
<a href="<?php echo base_url(); ?>patient/createpatient" <?php if($this->uri->segment(1)=="menu_name")echo 'class="active"';?> ><i class="fa fa-users fa-lg"></i> Create Patient </a>
</li>
<?php ?>
<li>
<a href="<?php echo base_url(); ?>patient/listpatient" <?php if($this->uri->segment(1)=="menu_name")echo 'class="active"';?> ><i class="glyphicon glyphicon-list-alt fa-lg"> </i> List Patients </a>
</li>
<?php if( $usertype == "Admin")?>
<li>
<a href="<?php echo base_url(); ?>user/" <?php if($this->uri->segment(1)=="menu_name")echo 'class="active"';?> ><i class="fa fa-list fa-lg"> </i> List Users </a>
</li>
【讨论】:
抱歉什么是 menu_name?你指的是什么? 考虑$this->uri->segment(1)
返回 createpatient
,然后 "menu-name"
应该是 "createpatient"
.. 我写 menu-name 只是为了举例。你应该用各自的菜单名称替换每个
更简单的<?= uri_string() == 'profile' ? 'active':'' ?>
【参考方案2】:
我在大多数项目中都这样做。我是如何做到这一点的;
<a href="<?php echo site_url('patient/listpatient'); ?>" class="<?php if($this->uri->uri_string() == 'patient/listpatient') echo 'active'; ?>"><i class="glyphicon glyphicon-list-alt fa-lg"></i> List Patients</a>
它匹配当前的 uri 字符串和链接 href。如果匹配,它将为链接添加一个活动类。
希望这会有所帮助。
我还使用了 site_url 而不是 base_url
【讨论】:
申请class active
需要写css代码吗?
是的。如果没有 CSS,它看起来会完全一样。 .active 字体粗细:粗体; 【参考方案3】:
试试这个。我认为不需要 javascript 或 jquery。
如果您使用的是 codeigniter,那么您可以使用 URI 类。 使用
从 url 获取菜单$this->uri->segment();
并应用到您的代码如下
<li>
<a href="<?php echo base_url(); ?>patient/listpatient"><i class="glyphicon glyphicon-list-alt fa-lg <?php if($this->uri->segment(1)=="memu_name")echo "active";?>"> </i> List Patients </a>
</li>
【讨论】:
使用 uri_segment() 意味着他的前 2 个链接将处于活动状态,因为它们在第一段都有“耐心”。【参考方案4】:我使用了 Codeigniter URI 类 $this->uri->segment();
请看我的代码:
<li class="<?=($this->uri->segment(1)==='technology')?'active':''?>"><a href="<?php echo base_url('technology')?>">Tech</a></li>
请注意....
class="<?=($this->uri->segment(1)==='technology')?'active':''?>"
您也可以使用 URI 类 $this->uri->uri_string()
这是我的主页(索引)活动类
<li class="<?=($this->uri->uri_string()=== '')?'active':''?>"><a href="<?php echo base_url('')?>">Home</a></li>
【讨论】:
【参考方案5】:<a href="<?=site_url('contact')?>" <?php if($this->uri->segment(1)=="contact") echo 'class="active nav__item-link"';?> class="nav__item-link">Contact Us</a>
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于如何在 codeigniter 中将 class="active" 设置为导航菜单?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 CodeIgniter 分页中将类名设置为 <a> 标签
如何在codeigniter中将上传图片比例限制为16:9?