Jak zastosować efekt najechania na a
element, ale nie na a
element z klasą active
?
a:hover(not: .active)
Wydaje się, że czegoś brakuje.
Jak zastosować efekt najechania na a
element, ale nie na a
element z klasą active
?
a:hover(not: .active)
Wydaje się, że czegoś brakuje.
Odpowiedzi:
Notacja funkcjonalna jest włączona :not()
, a nie :hover
:
a:not(.active):hover
Jeśli wolisz postawić na :hover
pierwszym miejscu, w porządku:
a:hover:not(.active)
Nie ma znaczenia, która pseudoklasa jest pierwsza czy ostatnia; tak czy inaczej, selektor działa tak samo. Tak się składa, że moim osobistą konwencją jest umieszczanie na :hover
ostatnim miejscu, ponieważ mam tendencję do umieszczania pseudoklasy interakcji użytkownika za pseudoklasami strukturalnymi.
Masz możliwość skorzystania z not()
selektora.
a:not(.active):hover { ... }
Jednak może to nie działać we wszystkich przeglądarkach, ponieważ nie wszystkie przeglądarki obsługują funkcje CSS3.
Jeśli kierujesz reklamy do dużej grupy odbiorców i chcesz obsługiwać starsze przeglądarki, najlepszym sposobem byłoby zdefiniowanie stylu .active:hover
i cofnięcie tego, co robisz a:hover
.
not()
msdn.microsoft.com/en-us/library/… . Być może zobacz odpowiedź od @Mendhak, jeśli tak.