Eu tenho CSS que muda a formatação quando você passa o mouse sobre um elemento.
HTML:
<div class="test"> blah </div>
CSS:
.test:hover { border: 1px solid red; }
Em alguns casos, não quero aplicar CSS ao passar o mouse. Uma maneira seria apenas remover a classe CSS da div usando jQuery, mas isso quebraria outras coisas, pois eu também usava essa classe para formatar seus elementos filhos.
Então isso me levou a questionar: Existe uma maneira de remover o estilo 'hover' do CSS de um elemento?
Use a
:not
pseudo-classe para excluir as classes às quais você não deseja que o cursor se aplique:FIDDLE
Isso faz o que você quer em uma regra css!
fonte
:hover
. Isso pode ser porque eu estou usando SASS, não tenho certeza.touchDevice
classebody
e mudar minhas regras CSS para algo comobody:not(.touchDevice) .button:hover { ... }
adicione uma nova classe .css:
e
A regra css mais "específica" vence, portanto, esta versão border: 0 substituirá a genérica especificada em outro lugar.
fonte
Eu também tive esse problema, minha solução foi ter um elemento acima do elemento no qual eu não quero um efeito de foco instantâneo:
fonte
Você deseja manter o seletor, para adicioná-lo / removê-lo não funcionará. Em vez de escrever seletores CSS rígidos e rápidos (ou dois), talvez você possa usar o seletor original para aplicar a nova regra CSS a esse elemento com base em algum critério:
fonte