如果PHP包含,则突出显示当前菜单项

时间:2010-12-02 21:01:26

标签: php html include navigation

如果我在html中创建菜单导航并使用PHP将其包含在我网站的每个页面中,如果我可以放在页面上的所有内容都包括(“menu.html”),我该如何突出显示当前页面;

4 个答案:

答案 0 :(得分:10)

menu.html变为menu.php并在该文件中执行类似

的操作
<ul class="menu">
    <li <?php echo ($page == 'page1') ? 'class="current"' : '';?>> <a href="#">Page1</a> </li>
    <li <?php echo ($page == 'page2') ? 'class="current"' : '';?>> <a href="#">Page2</a></li>   
</ul>

在每个页面中包含menu.php的方式,您可以简单地设置变量

<?php    
$page = 'page1';
include('menu.php');
?>

请记住,这只是一个示例,因为我们不知道您当前的代码是什么样的

答案 1 :(得分:6)

您也可以在PHP中编写菜单,因为您已经使用PHP加载菜单只需在菜单项上运行if / else语句,以检查链接中的“href”是否与页面的当前URL匹配并将菜单项设置为“活动”。

答案 2 :(得分:3)

在原始php中,这应该像

<?php 
$currentPage = ''; // should be accessed from $_SERVER
$cssMenu = array('home.html', 'about.html');
if(array_search($currentPage, $cssMenu)) $cssMenu[$currentPage] = 'active';
?>

<ul id="top-menu">
<li class="<?= $cssMenu['home.html'] ?>">Home</li>
<li class="<?= $cssMenu['about.html'] ?>">About</li>
</ul>

答案 3 :(得分:1)

由于在页面加载之前无法修改类和div,因此在加载页面后,您必须使用某种javascript / jquery / whatever来动态突出显示链接。这不应该太难;您可以通过菜单div(假设您正在使用div)查看与当前页面匹配的href条目的Javascript,然后将适当的css类添加到该特定标记。