Как применить эффект наведения к a
элементу, но не к a
элементу с классом active
?
a:hover(not: .active)
Кажется, чего-то не хватает.
Как применить эффект наведения к a
элементу, но не к a
элементу с классом active
?
a:hover(not: .active)
Кажется, чего-то не хватает.
Ответы:
Функциональная запись включена :not()
, а не :hover
:
a:not(.active):hover
Если вы предпочитаете ставить :hover
первым, ничего страшного:
a:hover:not(.active)
Не имеет значения, какой псевдокласс идет первым или последним; в любом случае селектор работает одинаково. Это просто мое личное соглашение, которое я ставлю на :hover
последнее место, поскольку я склонен помещать псевдоклассы взаимодействия с пользователем за структурными псевдоклассами.
У вас есть возможность использовать not()
селектор.
a:not(.active):hover { ... }
Однако это может работать не во всех браузерах, поскольку не все браузеры реализуют функции CSS3.
Если вы ориентируетесь на большую аудиторию и хотите поддерживать старые браузеры, лучшим способом было бы определить стиль для .active:hover
и отменить все, что вы делаете a:hover
.
not()
msdn.microsoft.com/en-us/library/… . Если да, возможно, посмотрите ответ @Mendhak.