我在所有页面的顶部都有一个相同的水平菜单,我使用 PHP include() 语句添加了该菜单。在我的样式表中,我希望有一个类,如果用户在特定页面上,则与该页面对应的菜单项将具有不同的颜色。所以,或多或少:
#menu { 背景颜色:蓝色;}
#menu .active { 背景颜色:绿色;}
但是,由于菜单来自 PHP 包含,它总是相同的。如何编写一些 PHP 或 JavaScript 将 class="active" 添加到每个页面的相应菜单项?
我在所有页面的顶部都有一个相同的水平菜单,我使用 PHP include() 语句添加了该菜单。在我的样式表中,我希望有一个类,如果用户在特定页面上,则与该页面对应的菜单项将具有不同的颜色。所以,或多或少:
#menu { 背景颜色:蓝色;}
#menu .active { 背景颜色:绿色;}
但是,由于菜单来自 PHP 包含,它总是相同的。如何编写一些 PHP 或 JavaScript 将 class="active" 添加到每个页面的相应菜单项?
当您include()
创建一个文件时,包含的文件可以访问包含它的位置的所有范围内变量。您可以轻松地设置一个变量来说明哪个菜单项应该处于活动状态。一个基本的例子可能是这样的:
第一页.php
<?php
$chosenMenu = 'page1';
include('menu.php');
菜单.php
<div id="menu">
<?php
$menuItems = array(
'page1'=>'firstpage.php',
'page2'=>'secondpage.php',
'page3'=>'lolcats.php'
);
foreach($menuItems as $key => $value) {
echo '<a href="'.$value.'"';
if (isset($chosenMenu) && $chosenMenu == $key) echo ' class="active"';
echo '>';
}
?>
</div>
使用这种样式,您可以在包含菜单文件之前简单地设置一个变量$chosenMenu
,并且可以从那里控制它。