2010-12-02 51 views
3

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

+0

menu.html是否可以包含PHP代码? – 2010-12-02 21:10:44

+0

绝对。可以menu.php :) – benhowdle89 2010-12-02 21:11:36

回答

6

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

1

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

+0

得到雅,听起来不错 – benhowdle89 2010-12-02 21:09:52

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> 
9

让你menu.htmlmenu.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'); 
?> 

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