PHP echoActiveClassIfRequestMatches - 链接未激活

时间:2013-08-16 08:51:39

标签: php echo nav

我已将此PHP代码添加到导航栏中,以便在点击导航栏链接时保持链接处于活动状态。当我通过www.something.com导航到该页面时,idex.php或主页不会激活

当访问者访问我的网站时,如果index.php或主页为class =“active”,我该怎么办?

    enter code here<?php 

function echoActiveClassIfRequestMatches($requestUri)
{
    $current_file_name = basename($_SERVER['REQUEST_URI'], ".php");

    if ($current_file_name == $requestUri)
        echo 'class="active"';
}

?>

    <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="container">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand visible-sm" href="#"><img src="assets/images/all.gif" style="padding-bottom:5px;" alt="" height="35em"></a>
<div class="nav-collapse collapse">

<ul class="nav navbar-nav">
<li <?=echoActiveClassIfRequestMatches("index")?>><a href="index.php">Home</a></li>
<li <?=echoActiveClassIfRequestMatches("about")?>><a href="about.php">About us</a></li>
<li <?=echoActiveClassIfRequestMatches("services")?>><a href="services.php">Our services</a></li>
<li <?=echoActiveClassIfRequestMatches("contact")?>><a href="contact.php">Contact</a></li>
          </ul>

        </div><!--/.nav-collapse -->

      </div>
    </div>

1 个答案:

答案 0 :(得分:0)

:active CSS类是一个伪类,即。一个不能手工归类的课程。如果您希望链接在与当前页面对应时突出显示,则必须手动执行。您的代码很好,但您必须定义CSS规则以使链接突出显示。

在CSS文件的某个位置(或html的style部分),您需要一个如下规则:

a.active {
     color: red;
}

a.active是CSS选择器,表示您希望将括号内的规则应用于aactive标记。您可以通过删除a将其推广到该类的任何标记。您可能希望将CSS规则替换为符合您网站风格的规则。

有关:active伪类的详细信息,请参阅Confused by CSS pseudo-class :active

也许你应该为你的“主动”ad-hoc类选择一个不同的名字,以避免混淆(可能是“当前页面”)。