如何在包含的菜单上设置活动页面的背景?

时间:2014-01-07 19:33:13

标签: php html css

我有一个菜单,但我将它包含在每个页面上,因为我不必在每个页面上复制和粘贴整个代码。所以我通过这种方式包括它     要求“menu.php”;

这就是menu.php包含的内容

<a href="index.php">Home</a>
.....
<a href="news.php">News</a>

我希望当我在索引页面上时,菜单栏中链接的背景为灰色,而不仅仅是index.php,而是每个其他页面。当我不包括它时,我知道如何做到这一点,只需添加类,我就可以对类进行样式化。但现在我无法想象它会如何发生。

如果有人帮助我,我将不胜感激。 提前谢谢

2 个答案:

答案 0 :(得分:1)

我这样做的方法是在主<body>(或其他父容器)标记中添加一个类,指示当前页面:

<body class='page-home'>

然后将类添加到每个菜单项:

<a href="index.php" class="nav-home">Home</a>
.....
<a href="news.php" class="nav-news">News</a>

现在,您可以根据当前页面编写以不同方式定位菜单链接的CSS样式:

.page-home .nav-home {
    /** styles for the home link when you are on the homepage **/
}

现在,您正在处理纯CSS中的所有样式,并且您的菜单是包含的并不重要。现在,您可以根据当前页面和特定菜单链接来决定要做多少样式。

答案 1 :(得分:0)

你可以使用这个技巧:
file_get_contents()获取您的文件,并根据您的文件名替换您的班级名称 在menu.php文件中:

return
'<a class=[+index] href="index.php">Home</a>
.....
<a  class=[+news] href="news.php">News</a>';

index.php

$strMenu = file_get_contents("menu.php");
$strMenu = str_replace('[+index]','is-active',$strMenu);
echo $strMenu;

news.php

$strMenu = file_get_contents("menu.php");
$strMenu = str_replace('[+news]','is-active',$strMenu);
echo $strMenu;