我有一个菜单,但我将它包含在每个页面上,因为我不必在每个页面上复制和粘贴整个代码。所以我通过这种方式包括它 要求“menu.php”;
这就是menu.php包含的内容
<a href="index.php">Home</a>
.....
<a href="news.php">News</a>
我希望当我在索引页面上时,菜单栏中链接的背景为灰色,而不仅仅是index.php,而是每个其他页面。当我不包括它时,我知道如何做到这一点,只需添加类,我就可以对类进行样式化。但现在我无法想象它会如何发生。
如果有人帮助我,我将不胜感激。 提前谢谢
答案 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;