如果我在HTML中制作一个菜单导航,然后使用PHP将其包含在网站的每个页面中,如果我只能在页面上放置include("menu.html");,那么如何突出显示当前页面?
将你的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');
?>
请记住,这只是一个示例,因为我们不知道您当前的代码是什么样子的。
既然您已经在使用PHP加载菜单,因此您也可以使用PHP编写菜单,只需在菜单项上运行if/else语句以检查链接中的“href”是否与页面当前URL匹配,并将菜单项设置为“active”。
<?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>
由于在页面加载之前无法修改类和div,因此您必须使用某种javascript/jquery/等动态突出显示链接的方法在页面加载后进行操作。这不应该太困难;您可以编写一些JavaScript代码,查找菜单div(假设您正在使用div)中与当前页面匹配的href条目,然后将适当的CSS类添加到该特定标记。