@wiznv

Почему не работает псевдокласс active для отдельного нажатого пункта меню ?

Задача - заменить в меню текст на графические кнопки.
CMS - wordpress. Шаблон Fruitful.
В разделе Внешний вид - меню каждому пункту меню присвоил класс. Допустим menu-1.
В настройках шаблона есть раздел css куда можно прописывать свои настройки.
Вот код css для изменения стиля отдельного пункта меню:

.menu-1 a{
background-image: url(mage/menu-1-1.png);
background-size: 109px 30px;
width: 110px;
background-repeat: no-repeat;
text-indent:-9999px;
}

.menu-1:active {
background-image: url(image/menu-1-3.png);
background-repeat: no-repeat;
background-size: 109px 30px;
text-indent:-9999px;
}

.menu-1:hover {
background-image: url(image/menu-1-2.png);
background-repeat: no-repeat;
background-size: 109px 30px;
text-indent:-9999px;
}

Все работает, кроме active! (

В style.css есть класс который отвечает за общий стиль и наверное конфликтует\перекрывает active:
.main-navigation ul li.current-menu-item a {
........
}


Ну и главный и вечный вопрос - что делать??

p.s. в css и php пока не силен, только учусь, поэтому и спрашиваю.
спасибо, надеюсь на помощь.

upd:
Есть почти решение:
.main-navigation ul .menu-1.current-menu-item a {

Но здесь есть минус - если у кнопки три состояния и она активна то при наведении видно оба состоянии - и активного и при наведении.
  • Вопрос задан
  • 11776 просмотров
Решения вопроса 1
@bugbucket
В CSS у ссылок есть 4 псевдокласса:

a:link - стиль ссылок по-умолчанию;
a:visited - стиль посещенных ссылок;
a:hover - стиль ссылки при наведении курсора;
a:active - стиль ссылки в нажатом состоянии, т. е. пока нажал и держишь =)

Чтобы выделить пункт меню текущей страницы нужно прописать стили для класса:

.main-navigation ul li.current-menu-item a
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@7rulnik
Хм... Так вы же должны писать так:
.menu-1 a{
}
.menu-1 a:active {
}
.menu-1 a:hover {
}
Ответ написан
Комментировать
Для того чтобы в Wordpress появился active для активного меню надо поплясать немножко с бубном - как то так. а в общем случае вместо селектора active вам следует использовать селектор current-menu-item и помнить, что этот селектор добавляется стандартно к li элементу, а не li a. Если menu-1 это класс Вашего li элемента, то Ваше правило перепишется как то так
.menu-1.current-menu-item {
background-image: url(image/menu-1-3.png);
background-repeat: no-repeat;
background-size: 109px 30px;
text-indent:-9999px;
}


Если же речь именно об псевдоклассе :active то он применяется только к активным ссылкам, а .menu-1 у вас судя по всему li.. тогда должен помочь такой селектор:
.menu-1 a:active {
background-image: url(image/menu-1-3.png);
background-repeat: no-repeat;
background-size: 109px 30px;
text-indent:-9999px;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы