是否有一个解决方案,无论何时子元素Subpage1.php
或Subpage2.php
是活动的,使父元素practices.php
也得到class="active"
?
<ul>
<li class="<?php echo ($_SERVER['PHP_SELF'] == " /index.php " ? "active " : " ");?>">
<a href="index.php">Start</a>
</li>
<li class="<?php echo ($_SERVER['PHP_SELF'] == " /practices.php " ? "active " : " ");?>">
<a href="practices.php">Practices</a>
<ul>
<li class="<?php echo ($_SERVER['PHP_SELF'] == " /subpage1.php " ? "active " : " ");?>">
<a href="subpage1.php">Subpage1</a>
</li>
<li class="<?php echo ($_SERVER['PHP_SELF'] == " /subpage2.php " ? "active " : " ");?>">
<a href="subpage2.php">Subpage2</a>
</li>
</ul>
</li>
</ul>
这里也有类似的问题,但是父子关系的问题在这里无法解决
这不是最优的,但是您可以使用in_array()
:
$_SERVER['PHP_SELF']
对元素及其子元素的值。<li class="<?php echo (in_array($_SERVER['PHP_SELF'], array(
'/practices.php',
'/subpage1.php',
'/subpage2.php',
)) ? "active " : " ");?>">
<a href="practices.php">Practices</a>
...
</li>
如果$_SERVER['PHP_SELF']
匹配数组中的任何项,该类将被设置为活动。