0

所以,我正在写一个菜单,我希望它在该页面上保持某种颜色。我已经在页面上添加了“class = 'active'”,并尝试将它添加到 CSS,但它不起作用。有任何想法吗?

PHP代码:

<?php
$currentPage = basename($_SERVER['REQUEST_URI']);
print "<div id = 'submenu-container'>";
print "<div id = 'submenu'>";
print "<ul class = 'about'>";
print "     <li><a  href='about.php#about_intro.php'if($currentPage=='about.php#about_intro.php' || $currentPage=='about.php') echo 'class='active''>About</a></li>";
print "     <li><a href='about.php#about_team.php'if($currentPage=='about.php#about_team.php') echo 'class='active''>Team</a></li>";
print "     <li><a href='about.php#about_services.php' if($currentPage=='about.php#about_services.php') echo 'class='active'>Services</a></li>";            
print " </ul>";
print "</div>";
print"</div>";
?>

CSS:

#submenu ul li a .active {
background:#FFF;    
}
4

2 回答 2

1

$_SERVER['REQUEST_URI']永远不会包含哈希后的部分。它只会显示到about.php和任何通过?. 您应该为每个页面创建特定页面,在查询字符串中而不是哈希中提供 about_intro/about_team/about_services,或者使用 javascript 添加活动类。

此外,不要在另一个语句中使用 if 语句。使用三元运算符。

print "<li><a href='about.php'"
    .$currentpage=="about.php"?" class='active'":""
    .">About</a></li>";
于 2012-05-03T19:29:14.380 回答
1
print "     <li><a  href='about.php#about_intro.php'if($currentPage=='about.php#about_intro.php' || $currentPage=='about.php') echo 'class='active''>About</a></li>";

没有意义。所有这些字符串都将输出并显示在 html 中。您必须使用字符串连接:

$cl = ($currentPage=='about.php#about_intro.php' || $currentPage=='about.php')?" class='active'": "";
print "<li><a  href='about.php#about_intro.php' $cl>About</a></li>";
于 2012-05-03T19:31:57.420 回答