2012-02-11 17 views

risposta

95

La notazione funzionale è in :not(), non :hover:

a:not(.active):hover 

Se si preferisce mettere :hover prima, va bene:

a:hover:not(.active) 

Non importa quale pseudo-classe viene prima o ultimo; in entrambi i casi, il selettore funziona allo stesso modo. È proprio la mia convenzione personale a mettere l'ultimo :hover mentre tendo a posizionare le pseudo-classi di interazione dell'utente dietro le pseudo-classi strutturali.

+1

Ah, perfetto! Grazie a @BoltClock. – Michelle

+0

Prestare attenzione se è necessario supportare IE prima della versione 9 anche se sembrano non supportare 'not()' https://msdn.microsoft.com/en-us/library/cc351024(VS.85).aspx#pseudoclasses . Forse vedi la risposta di @Mendhak se lo fai. – SharpC

5

Hai la possibilità di utilizzare il selettore not().

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

Tuttavia, questo potrebbe non funzionare in tutti i browser, poiché non tutti i browser implementano le funzionalità CSS3.

Se si sta mirando a un vasto pubblico e si desidera supportare i browser meno recenti, il modo migliore sarebbe definire uno stile per lo .active:hover e annullare ciò che si sta facendo in a:hover.