Поэтому я обыскал SO в течение часа, пытаясь найти ответ, а также пробовал различные методы, включая это
Я пытаюсь включить свои страницы вместе с навигацией. Но на правильной странице мне нужен элемент списка, чтобы иметь класс active
. Навигация в header.php и в настоящее время выглядит так:
<nav> <ul> <li class="active"> <a href="/">Home</a> </li> <li> <a href="#">Apps</a> </li> <li> <a href="#">Forums</a> </li> </ul> </nav>
Во-первых, я понятия не имею, будет ли лучше JS (jQuery), или если PHP будет лучше. Оба не имеют значения, если это сработает.
Также я немного новичок в PHP и стараюсь учиться.
Какой будет самый простой (надеюсь) метод? Поэтому мне не нужно менять много кода, чтобы дать class="active"
nav class="active"
В Asumming у вас есть переменная $page
(которая содержит имя страницы, в которой вы сейчас находитесь):
<nav> <ul> <li class="<?php echo ($page == "home" ? "active" : "")?>"> <a href="/">Home</a> </li> <li class="<?php echo ($page == "apps" ? "active" : "")?>"> <a href="#">Apps</a> </li> <li class="<?php echo ($page == "forums" ? "active" : "")?>"> <a href="#">Forums</a> </li> </ul> </nav>
Вот простой способ, когда вам не нужно добавлять какую-либо другую переменную
<li class="<?php echo ($_SERVER['PHP_SELF'] == "/index.php" ? "active" : "");?>"> <a href="index.php">Start</a> </li> <li class="<?php echo ($_SERVER['PHP_SELF'] == "/about.php" ? "active" : "");?>"> <a href="about.php">About</a> </li> <li class="<?php echo ($_SERVER['PHP_SELF'] == "/practices.php" ? "active" : "");?>"> <a href="practices.php">Practices</a> </li>
если вы используете строку запроса exmaple.com?page_id=Apps
для передачи идентификатора страницы, чем с помощью php, вы можете подойти к этой вещи
$ page_id = $ _REQUEST ['page_id'];
<ul> <li class="<?php echo ($page_id == "Home" ? "active" : "");?>"> <a href="/">Home</a> </li> <li class="<?php echo ($page_id == "Apps" ? "active" : "");?>"> <a href="#">Apps</a> </li> <li class="<?php echo ($page_id == "Forums" ? "active" : ""); ?>"> <a href="#">Forums</a> </li> </ul>
В заголовке страницы используйте:
<?php $loc = this.location; ?>
Затем при каждой ссылке добавьте:
<?php(this.href == $loc) ? echo 'class="active"' : '' ?>
Если вы не хотите использовать jQuery или PHP, можете сделать следующее:
<li>
в «your-include-nav.php». <head>
, на каждой странице.