¿Cómo aplico un efecto de desplazamiento sobre un elemento a
, pero no a un elemento a
con la clase active
?: pase el mouse pero: no en una clase específica
a:hover(not: .active)
Parece que falta algo.
¿Cómo aplico un efecto de desplazamiento sobre un elemento a
, pero no a un elemento a
con la clase active
?: pase el mouse pero: no en una clase específica
a:hover(not: .active)
Parece que falta algo.
La notación funcional está en :not()
, no :hover
:
a:not(.active):hover
Si prefiere poner :hover
primero, eso está bien:
a:hover:not(.active)
No importa lo que la pseudo-clase es lo primero o último; De cualquier manera, el selector funciona de la misma manera. Simplemente es mi convención personal poner :hover
en último lugar, ya que tiendo a ubicar las pseudo-clases de interacción del usuario detrás de las pseudo-clases estructurales.
Tiene la opción de utilizar el selector not()
.
a:not(.active):hover { ... }
Sin embargo, esto puede no funcionar en todos los navegadores, ya que no todos los navegadores implementan características de CSS3.
Si se dirige a una gran audiencia y desea admitir navegadores antiguos, la mejor manera sería definir un estilo para el .active:hover
y deshacer lo que sea que esté haciendo en a:hover
.
¡Ah, perfecto! Gracias @BoltClock. – Michelle
Tenga cuidado si necesita soportar IE antes de la versión 9, ya que parecen no ser compatibles con 'not()' https://msdn.microsoft.com/en-us/library/cc351024(VS.85).aspx#pseudoclasses . Tal vez vea la respuesta de @Mendhak si lo hace. – SharpC