使用PHP包含在导航栏中突出显示当前页面?

时间:2012-11-20 00:03:19

标签: php highlight navbar

我有一个index.php页面,其中包含一个navBar.inc页面来呈现顶部导航栏。我还有一个外部样式表。我的目标是通过PHP突出显示该导航栏中的当前页面。

我试图实现它,但它没有像我预期的那样工作。

我将PHP代码放在index.php页面的顶部:<?php $thisPage="About"; ?>

然后在navBar.inc文件中的每个li中,我有代码可以更改每个li的ID,例如:<li><?php if ($thisPage=="About") echo " id=\"currentPage\""; ?>><a href="index.php">ABOUT</a></li>

当然,在我的外部CSS中我有:#currentPage {color:black;}

但是当我将文件上传到服务器并试用时,它实际上将id =“currentPage”写入页面而不是将其分配给该ID。此外,每个菜单项之间都有。见下面的图片链接。

Image

你能帮我搞定吗?我觉得我快到了!谢谢!

注意:这是我第一次接触PHP。语法有点令人困惑,但看起来很有趣!

1 个答案:

答案 0 :(得分:3)

您目前正在关闭变量之前关闭<li>标记,这意味着它正在呈现id属性并>进行屏幕显示:

<li><?php if ($thisPage=="About") echo " id=\"currentPage\""; ?>>
   ^                                                            ^
<a href="index.php">ABOUT</a></li>

您需要将id属性放在<li>元素中,如下所示:

<li<?php if ($thisPage=="About") echo " id=\"currentPage\""; ?>>
<a href="index.php">ABOUT</a></li>

如前所述,您可以使用javascript / jQuery完成此操作,但这样可以。

修改

尝试:

#currentPage a { color: black !important; }

这会覆盖您在.CSS文件中设置的先前样式。