我在使用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";
?>
我用bootstrap制作了这个,并试图通过这个突出显示: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>
中的类时,它确实有效。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
function setActive($pageName)
{
if (stripos($_SERVER['REQUEST_URI'], $pageName)) {
echo 'class="active"';
}
}
//$pageName will be home ,blog,projects and contacts
答案 1 :(得分:1)
在每个页面的最顶部声明页面变量。
示例:<? $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获取活动类。