在php的菜单中突出显示当前页面

Posted

技术标签:

【中文标题】在php的菜单中突出显示当前页面【英文标题】:highlight the current page in menu in php 【发布时间】:2018-09-03 13:52:21 【问题描述】:

我想使用 php 在菜单中突出显示活动页面。该页面为静态版本,仅使用 php 中的 include 调用常见文件,即 header.php,footer.php,navigation.php

navigation.php

<div class="collapse navbar-collapse" id="navbar-collapse-1">
                    <ul class="nav navbar-nav">
                        <li class="active"><a href="index.php">Home</a></li>
                        <li><a href="contact-us.php">Contact</a></li>
                    </ul>
                </div>

index.php

<?php
// Including Files
include('includes/header.php');
include('includes/navigation.php');
?> Rest html code goes here

【问题讨论】:

你有活跃的类在列表中,使用 CSS 做高亮? 【参考方案1】:

您可以使用以下内容:

.active, .home:hover 
  background-color: #666;
  color: white;
<div class="collapse navbar-collapse" id="navbar-collapse-1">
        <ul class="nav navbar-nav">
           <li class="home active"><a href="index.php">Home</a></li>
           <li><a href="contact-us.php">Contact</a></li>
        </ul>
    </div>  

【讨论】:

【参考方案2】:

你给链接一个ID,比如#activeHome#activeContact

<li><a href="index.php" id="activeHome">Home</a></li>

然后你改变HTML,你只在Home加载,例如background

<style>
    #activeHome 
        background:blue;
    
</style>

在页面上Contact 对应。

【讨论】:

【参考方案3】:

您应该在navigation.php 文件中的每个li 类属性中使用条件语句。使用 $_SERVER["PHP_SELF"] 预定义变量,例如联系人链接:

<li class="<?php $_SERVER['PHP_SELF'] === '/contact-us.php' ? 'active' : '' ?>"><a href="contact-us.php">Contact</a></li>

【讨论】:

【参考方案4】:

您可以在每个页面的 &lt;li&gt; 元素中添加适当的类,然后使用一些 CSS 突出显示相应的页面按钮。

代码示例:

navigation.php

<div class="collapse navbar-collapse" id="navbar-collapse-1">
    <ul class="nav navbar-nav">
        <li class="index"><a href="index.php">Home</a></li>
        <li class="contact"><a href="contact-us.php">Contact</a></li>
    </ul>
</div>

index.php

// after php includes
<head>
    .index 
        color:red;
    
</head>

联系我们.php

// after php includes
<head>
    .contact 
        color:red;
    
</head>

...等等。

【讨论】:

【参考方案5】:

PHP

$activePage = basename($_SERVER['PHP_SELF'], ".php");

HTML

<ul class="nav navbar-nav">
      <li class="<?= ($activePage == 'index') ? 'active':''; ?>"><a href="index.php">Home</a></li>
      <li class="<?= ($activePage == 'contact-us') ? 'active':''; ?>"><a href="contact-us.php">Contact</a></li>
</ul>

【讨论】:

以上是关于在php的菜单中突出显示当前页面的主要内容,如果未能解决你的问题,请参考以下文章

突出显示当前页面的导航菜单

Asp.Net Mvc 突出显示当前页面链接技术?

在 PHP 中突出显示当前页面

如何正确构建突出当前页面的导航菜单

PHP 突出显示导航中的当前页面

使用 Sprite 的 CSS 导航菜单:如何突出显示当前页面的选项卡/按钮?