【问题标题】:PHP echoActiveClassIfRequestMatches - link not activePHP echoActiveClassIfRequestMatches - 链接不活跃
【发布时间】:2013-08-16 08:51:38
【问题描述】:

我已将此 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>

【问题讨论】:

  • short_open_tagsonphp.ini 中吗?而且您的 html 无效。你使用了两次&lt;li&gt;&lt;li..。试试&lt;li &lt;?=echoActiveClassIfRequestMatches("index")?&gt;&gt; ...
  • “保持链接有效”是什么意思?请准确描述您希望实现的效果。
  • www.something.com 不会激活主页链接。 www.somthing.com/index.php 使主页链接处于活动状态 访问者到达 www.something.com 所以不会看到主页链接处于活动状态...如何让主页链接激活
  • 再一次,“活动链接”是什么意思?什么是活动链接?您是指突出显示的链接吗?
  • 抱歉,是的,突出显示,如果链接处于活动状态,则导航栏链接会突出显示...但如果您直接访问 www.something.com,则所有链接都不会突出显示。如果您访问 www.something.com/inedx.php 或任何其他页面,则链接将处于活动状态,即突出显示。

标签: php echo nav


【解决方案1】:

:active CSS 类是一个伪类,即。一个无法手动归因的类。如果您希望在与当前页面相对应时突出显示链接,则必须手动完成。您的代码本来就很好,但是您必须定义 CSS 规则以使链接突出显示。

在您的 CSS 文件中的某处(或在您的 html 的 style 部分),您需要如下规则:

a.active {
     color: red;
}

a.active 是 CSS 选择器,表示您希望将括号内的规则应用到具有 active 类的 a 标记。您可以通过删除a 将其推广到具有该类的任何标签。您可能希望将 CSS 规则替换为与您的网站样式匹配的规则。

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

也许您还应该为您的“活动”临时课程选择一个不同的名称,以避免混淆(可能是“当前页面”)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-12
    • 2023-03-14
    • 1970-01-01
    • 2022-01-25
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    相关资源
    最近更新 更多