Mam CSS, który zmienia formatowanie po najechaniu kursorem na element.
HTML:
<div class="test"> blah </div>
CSS:
.test:hover { border: 1px solid red; }
W niektórych przypadkach nie chcę stosować CSS po najechaniu kursorem. Jednym ze sposobów byłoby po prostu usunięcie klasy CSS z div za pomocą jQuery, ale to zepsułoby inne rzeczy, ponieważ używam tej klasy również do formatowania jej elementów potomnych.
To doprowadziło mnie do pytania: czy istnieje sposób na usunięcie stylów CSS typu „hover” z elementu?
Użyj
:not
pseudoklasy, aby wykluczyć klasy, do których nie chcesz stosować dymka:SKRZYPCE
Robi to, co chcesz w jednej regule CSS!
źródło
:hover
. Może to być spowodowane tym, że używam SASS, nie jestem pewien.touchDevice
klasębody
i zmieniając moje reguły css na coś takiegobody:not(.touchDevice) .button:hover { ... }
dodaj nową klasę .css:
i
Bardziej „szczegółowa” reguła css wygrywa, więc ta wersja border: 0 zastąpi ogólną określoną w innym miejscu.
źródło
Miałem też ten problem, moim rozwiązaniem było posiadanie elementu nad elementem, na który nie chcę najeżdżać:
źródło
Chcesz zachować selektor, więc dodanie / usunięcie go nie zadziała. Zamiast pisać twarde i szybkie selektory CSS (lub dwa), być może możesz po prostu użyć oryginalnego selektora, aby zastosować nową regułę CSS do tego elementu w oparciu o pewne kryterium:
źródło