Выделение текущего пункта меню, если PHP включает
Если я создам навигацию по меню в html и использую PHP, чтобы включить ее на каждой странице моего веб-сайта, как мне выделить текущую страницу, если все, что я могу разместить на странице, - это включить ("menu.html ");
4 answers
Вы также можете написать меню на PHP, так как вы уже используете PHP для загрузки меню, просто запустите оператор if/else в пунктах меню, чтобы проверить, соответствует ли "href" в ссылке текущему URL-адресу страницы и установите для пункта меню значение "активный".
Сделайте свой menu.html
в menu.php
и в этом файле сделайте что-то вроде
<ul class="menu">
<li <?php echo ($page == 'page1') ? 'class="current"' : '';?>> <a href="#">Page1</a> </li>
<li <?php echo ($page == 'page2') ? 'class="current"' : '';?>> <a href="#">Page2</a></li>
</ul>
Таким образом, на каждой странице, которую вы включаете в свой menu.php
, вы можете просто установить переменную так
<?php
$page = 'page1';
include('menu.php');
?>
Имейте в виду, что это всего лишь пример, так как мы не знаем, как выглядит ваш текущий код
В исходном php это должно быть похоже на
<?php
$currentPage = ''; // should be accessed from $_SERVER
$cssMenu = array('home.html', 'about.html');
if(array_search($currentPage, $cssMenu)) $cssMenu[$currentPage] = 'active';
?>
<ul id="top-menu">
<li class="<?= $cssMenu['home.html'] ?>">Home</li>
<li class="<?= $cssMenu['about.html'] ?>">About</li>
</ul>
Поскольку вы не можете изменять классы и разделы до загрузки страницы, вам придется использовать какой-то javascript/jquery/что угодно, чтобы динамически выделять ссылку после загрузки страницы. Это не должно быть слишком сложно; у вас может быть немного Javascript, который просматривает div меню (при условии, что вы используете divs) для записи href
, которая соответствует текущей странице, а затем добавьте соответствующий класс css к этому конкретному тегу.