Выделение текущего пункта меню (PHP)

491
24 ноября 2016, 10:22

При изменении стиля, меняется всё меню целиком.

<div class="menu">
<?php 
$arr = array(
    'index.php'=>'Главная',
    'o_has.php'=>'О нас',
    'reg.php'=>'Регистрация',
    'kak_podkl.php'=> 'Как подключиться',
    ''=>'Карта мира',
    ''=>'Личный кабинет',
    ''=>'Список изменений',
    ''=>'Полезные статьи',
    ''=>'Форум'
);
foreach($arr as $key=>$value)
{
    if($_SERVER['PHP_SELF']==$key) echo "<li class=\"menu li\"><a href='$key' >$value</a></li>";
    else echo "<li id=\"li\"><a href='$key'>$value</a></li>";
}
?>
</div>

и срабатывает только последнее

else echo "<li id=\"li\"><a href='$key'>$value</a></li>";`

CSS:

.menu {
    display:table; 
    width:100%; 
    table-layout:fixed; 
    border-collapse:collapse;
}
.menu li /*текущая страница*/
{ /* градиентное меню */
    display:table-cell; 
    background:green; 
    padding:.5em; 
    text-align:center; 
    border:2px solid black; 
    background: green; /* Для старых браузров */
    background: linear-gradient(to top, green, black);
    padding: 10px;
    border: 1px solid #333;
}
(решетка)li /*текущая страница*/
{ /* градиентное меню */
    display:table-cell; 
    background:green; 
    padding:.5em; 
    text-align:center; 
    border:2px solid black; 
    background: green; /* Для старых браузров */
    background: linear-gradient(to top, black, black);
    padding: 10px;
    border: 1px solid #333;
}

Помогите доработать код чтобы выделялся только текущий пункт меню.

Answer 1

Возможно $_SERVER['PHP_SELF'] возвращает '/index.php'. т.е. со слешем. скорее всего в этом дело. Посмотрите что находится в $_SERVER['PHP_SELF'].

И еще так делать в массиве нехорошо:

''=>'Карта мира',
''=>'Личный кабинет',
''=>'Список изменений',
''=>'Полезные статьи',
''=>'Форум'

лучше без ключей пишите

'Карта мира',
'Личный кабинет',
'Список изменений',
'Полезные статьи',
'Форум'
READ ALSO
Не вешается hover background rgba на картинку

Не вешается hover background rgba на картинку

что я делаю не так? не работает и все тут :( нужно при наведении что бы на картинку накладывался цвет. Я наверное не знаю хитрость :).

542
Разработка мобильной версии сайта

Разработка мобильной версии сайта

Здравствуйте. Хочу сделать для сайта мобильную версию.

430
Почему не срабатывает media для блоков?

Почему не срабатывает media для блоков?

Здравствуйте. Есть блоки, которые при определенном разрешении экрана должны становиться невидимы.

456
Проблема в верстке

Проблема в верстке

Помогите, я запутался. Откуда вылазит это маленькое белое пространство?.

506