我在这个网站上看到了很多这样的问题,但我找不到我想做什么的具体答案。我不想使用JS,我想尽可能少地使用它,但如果必须的话,我会求助于它。
当页面打开时,或者如果下拉菜单中的页面(我所指的子页面)打开时,我想使用PHP将一个活动类添加到我的导航链接中。这是我的密码。
在我的所有页面中,我都"包含"了以下内容:
<?php include('includes/header.php'); ?>
作为包含页面的一部分,我有以下内容:
<ul class="firstbar">
<li class="item"><a href="index.php">Home</a></li>
<li class="item has-dropdown">
<a href="about.php">About Us</a>
<ul class="dropdown">
<li><a href="about.php#about">G2 Drivers</a></li>
<li><a href="about.php#locations">Locations</a></li>
<li><a href="about.php#instructors">Instructors</a></li>
</ul>
</li>
<li class="item has-dropdown">
<a href="services.php">Services</a>
<ul class="dropdown">
<li><label>In-car</label></li>
<li><a href="services/defensivedriving.php">Defensive Driving</a></li>
<li><a href="services/incarlessons.php">In-car Lessons</a></li>
<li class="divider"></li>
<li><label>In-class</label></li>
<li><a href="services/curriculum.php">Curriculum</a></li>
</ul>
</li>
</ul>
您可以在这里查看测试url:www.mrobertsdesign.ca/g2drivers/(活动类已经可用,只是不确定如何添加它)
活动类需要添加到锚链接标签之前的列表项标签中,如下所示:
<li class="active item"><a href="index.php">Home</a></li>
about.php页面有一个下拉菜单,但它只是链接到该页面部分的散列。但是对于像services.php这样有不同页面下拉列表的页面,我希望"services"列表项标记也有活动类,所以没有什么不同。如下所示:
<li class="active item has-dropdown">
<a href="services.php">Services</a>
<ul class="dropdown">
<li><label>In-car</label></li>
<li><a href="services/defensivedriving.php">Defensive Driving</a></li>
<li><a href="services/incarlessons.php">In-car Lessons</a></li>
<li class="divider"></li>
<li><label>In-class</label></li>
<li><a href="services/curriculum.php">Curriculum</a></li>
</ul>
</li>
到目前为止,我在看过的任何问题中都找不到的是,如果一个问题当前位于下拉菜单中的某个页面上,大多数问题似乎都不包括下拉菜单的概念,代码通常包括查找当前页面等,所以到目前为止我还没有办法用它来解决这个问题。
感谢所有的帮助!谢谢
@1andlock回答了下面问题的前半部分,但我有几个页面位于不同的文件夹中,名称相同,所以脚本在这些情况下不起作用。对于任何想看一眼并想帮助我的人来说,那将是太棒了=)
添加class=";活动的";使用PHP 到活动页面
这是一篇与我刚刚看到的这篇文章类似的文章,它似乎回答了我想要的内容,但它有一个"noactive"类,我只希望它是"active"或不显示active。
我还没有测试过,但为什么你不能只做:
<?php
$current_page = basename($_SERVER['PHP_SELF']);
?>
然后:
<li class="<?php if ($current_page == "index.php"){ echo "active "; }?> item"><a href="index.php">Home</a></li>
对于正常链路,以及:
<li class="<?php if ($current_page == "index.php"){ echo "active "; }?> item has-dropdown">
<a href="about.php">About Us</a>
是否有下拉链接?
如果您正在使用会话,您可以设置当前页面会话变量并在页面上使用它:
每页:
session_start();
$_SESSION['current_page'] = 'this_page';
然后在您的菜单页面上:
<li class="<?php if ($_SESSION['current_page'] == 'this_page'){ echo 'active '; }?> item"><a href="index.php">Home</a></li>