: hover но: не по определенному классу - PullRequest
74 голосов
/ 11 февраля 2012

Как применить эффект наведения на элемент a, но не на элемент a с классом active?

a:hover(not: .active)

Кажется, что-то не хватает.

Ответы [ 2 ]

140 голосов
/ 11 февраля 2012

Функциональная запись включена :not(), а не :hover:

a:not(.active):hover

Если вы предпочитаете ставить :hover первым, это нормально:

a:hover:not(.active)

Это нене имеет значения, какой псевдокласс приходит первым или последним;в любом случае селектор работает одинаково.Это просто мое личное соглашение ставить :hover последним, так как я склонен размещать псевдоклассы взаимодействия с пользователем позади структурных псевдоклассов.

6 голосов
/ 11 февраля 2012

Вы можете использовать селектор not().

a:not(.active):hover { ... }

Однако это может работать не во всех браузерах, поскольку не все браузеры поддерживают функции CSS3.

Если вы нацелены на большую аудиторию и хотите поддерживать старые браузеры, лучшим способом было бы определить стиль для .active:hover и отменить все, что вы делаете в a:hover.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...