所以,我正在写一个菜单,我希望它根据它在该页面上保持某种颜色。 我在页面上添加了“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;
}
答案 0 :(得分:1)
$_SERVER['REQUEST_URI']
将永远不会包含散列后的部分。它最多只显示about.php
以及通过?
传递的任何URL参数。您应该为每个页面创建特定页面,在查询字符串中提供about_intro / about_team / about_services而不是哈希,或者使用javascript添加活动类。
此外,在另一个语句中不要使用if语句。使用三元运算符。
print "<li><a href='about.php'"
.$currentpage=="about.php"?" class='active'":""
.">About</a></li>";
答案 1 :(得分: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>";