Tengo CSS que cambia el formato cuando pasas el cursor sobre un elemento.
HTML:
<div class="test"> blah </div>
CSS:
.test:hover { border: 1px solid red; }
En algunos casos, no quiero aplicar CSS al pasar el mouse por encima. Una forma sería simplemente eliminar la clase CSS del div usando jQuery, pero eso rompería otras cosas ya que también uso esa clase para formatear sus elementos secundarios.
Eso me llevó a preguntar: ¿hay alguna forma de eliminar el estilo CSS 'hover' de un elemento?
Use la
:not
pseudoclase para excluir las clases a las que no desea que se aplique el elemento emergente:VIOLÍN
¡Esto hace lo que quieres en una regla CSS!
fuente
:hover
. Esto puede ser porque estoy usando SASS, no estoy seguro.touchDevice
clasebody
y cambiando mis reglas CSS a algo comobody:not(.touchDevice) .button:hover { ... }
agregue una nueva clase .css:
y
La regla css más "específica" gana, por lo que esta versión border: 0 anulará la genérica especificada en otra parte.
fuente
También tuve este problema, mi solución fue tener un elemento sobre el elemento sobre el que no quiero un efecto de desplazamiento:
fuente
Desea conservar el selector, por lo que agregarlo / eliminarlo no funcionará. En lugar de escribir un selector CSS rápido y duro (o dos), quizás solo pueda usar el selector original para aplicar una nueva regla CSS a ese elemento según algún criterio:
fuente