J'ai du CSS qui change la mise en forme lorsque vous survolez un élément.
HTML:
<div class="test"> blah </div>
CSS:
.test:hover { border: 1px solid red; }
Dans certains cas, je ne veux pas appliquer CSS en survol. Une façon serait de simplement supprimer la classe CSS du div en utilisant jQuery, mais cela casserait d'autres choses puisque j'utilise également cette classe pour formater ses éléments enfants.
Cela m'a amené à me poser la question: existe-t-il un moyen de supprimer le style css «hover» d'un élément?
Utilisez la
:not
pseudo-classe pour exclure les classes auxquelles vous ne souhaitez pas appliquer le survol:VIOLON
Cela fait ce que vous voulez dans une règle css!
la source
:hover
. C'est peut-être parce que j'utilise SASS, pas sûr.touchDevice
classebody
et en changeant mes règles css en quelque chose commebody:not(.touchDevice) .button:hover { ... }
ajoutez une nouvelle classe .css:
et
La règle css la plus "spécifique" l'emporte, donc cette version border: 0 remplacera la version générique spécifiée ailleurs.
la source
J'ai aussi eu ce problème, ma solution était d'avoir un élément au-dessus de l'élément sur lequel je ne veux pas d'effet de survol:
la source
Vous voulez garder le sélecteur, donc l'ajouter / le supprimer ne fonctionnera pas. Au lieu d'écrire un sélecteur CSS dur et rapide (ou deux), vous pouvez peut-être simplement utiliser le sélecteur d'origine pour appliquer une nouvelle règle CSS à cet élément en fonction d'un critère:
la source