引导 PHP 导航栏突出显示活动状态


bootstrap php navigation bar highlight active

我在使用 php include 突出显示时遇到问题。这是我的导航栏:

<?php
echo '
<link rel="stylesheet" href="css/index-css.css" type="text/css">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<div class="container">
<nav class="navbar navbar-inverse">
    <div class="container-fluid">
        <div class="navbar-header">
                <a class="navbar-brand" href="/womsy/index.php">Womsy</a>
        </div>
            <ul class="nav navbar-nav">
                <li <?php echo $active[1] ?><a href="/womsy/home.php">Home</a></li>
                <li <?php echo $active[2] ?><a href="/womsy/blog.php">Blog</a></li>
                <li <?php echo $active[3] ?><a href="/womsy/projects.php">Projects</a></li>
                <li <?php echo $active[4] ?><a href="/womsy/contact.php">Contact</a></li>
                <li class="active"><a href="/womsy/about.php">About</a></li>
            </ul>
    </div>
</nav>';
$active[$current] = "class=active";
?>

我用引导程序做了这个,并试图通过这个来突出:http://webdevjunk.com/coding/css/17/php-menu-includes-with-css-style-to-highlight-active-page-link/

<?php
$current = 1;
include 'php/menu.php';
?>

这是我在页面上使用的,但它没有突出显示,但是当我在<li>中更改类时,它确实有效。

有人可以帮我解决这个问题吗?

function setActive($pageName)
{
    if (stripos($_SERVER['REQUEST_URI'], $pageName)) {
        echo 'class="active"';
    }
}
//$pageName will be home ,blog,projects and contacts

在每个页面的最顶部声明页面变量。示例:<? $page="home";?>位于主页顶部,<? $page="blog";?>位于博客页面顶部,依此类推。对于菜单中的每个列表项,添加具有相应变量和活动类的 if 语句。示例:<ul><li class="<?if($page=="home"){?>active<?}?>"><a href="home.php"><b>Home</b></a></li><li class="<?if($page=="blog"){?>active<?}?>"><a href="blog.php"><b>Blog</b></a></li></ul>这样做是为每个页面分配一个变量。在导航栏的 if 语句中比较变量,以确定哪个 li 获得活动类。