Przez większość czasu się tym nie martwię, ale mam karuzelę obrazów i jeśli szybko kliknę na następny i poprzedni element div, zostaną one podświetlone w Chrome.
Próbowałem użyć konturu: brak, ale bez efektu. Czy są jakieś rozwiązania?
Przez większość czasu się tym nie martwię, ale mam karuzelę obrazów i jeśli szybko kliknę na następny i poprzedni element div, zostaną one podświetlone w Chrome.
Próbowałem użyć konturu: brak, ale bez efektu. Czy są jakieś rozwiązania?
Odpowiedzi:
Oprócz linku dostarczonego przez Floremin , który czyści zaznaczenie tekstu za pomocą JavaScript w celu „wyczyszczenia” zaznaczenia, możesz również użyć czystego CSS, aby to osiągnąć. CSS jest tutaj ...
.noSelect {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
Po prostu dodaj class="noSelect"
atrybut do elementu, do którego chcesz zastosować tę klasę. Gorąco polecam wypróbowanie tego rozwiązania CSS. Nie ma nic złego w używaniu JavaScript, po prostu uważam, że może to być potencjalnie łatwiejsze i trochę uporządkować kod.
Chrome na Androida
-webkit-tap-highlight-color: transparent;
to dodatkowa reguła, z którą możesz poeksperymentować, aby uzyskać obsługę Androida.
user-select
i webkit-user-select
.
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-webkit-tap-highlight-color: transparent;
jest kluczową częścią w Chrome
W przypadku przeglądarki Chrome na Androida możesz użyć właściwości CSS -webkit-tap-highlight-color :
-webkit-tap-highlight-color to niestandardowa właściwość CSS, która ustawia kolor podświetlenia, które pojawia się nad łączem, gdy jest ono dotykane. Podświetlenie wskazuje użytkownikowi, że jego dotknięcie jest pomyślnie rozpoznawane, i wskazuje, którego elementu dotyka.
Aby całkowicie usunąć podświetlenie, możesz ustawić wartość na transparent
:
-webkit-tap-highlight-color: transparent;
Pamiętaj, że może to mieć wpływ na dostępność: zobacz outlinenone.com
-webkit-tap-highlight-color: transparent;
wydaje się też działać.
Używam Chrome w wersji 60 i żadna z poprzednich odpowiedzi CSS nie działała.
Odkryłem, że Chrome dodaje niebieskie podświetlenie poprzez outline
styl. Dodanie następującego CSS rozwiązało problem:
:focus {
outline: none !important;
}
user-select:none
donikąd nie prowadzi
Ale czasami, nawet przy włączonym user-select
i touch-callout
wyłączonym, cursor: pointer;
może powodować ten efekt, więc po prostu ustaw cursor: default;
i zadziała.
cursor: pointer;
naprawdę powoduje wyróżnienie. Ale -webkit-tap-highlight-color: transparent;
jest bardziej uniwersalnym rozwiązaniem.
-webkit-tap-highlight-color
przed oznaczeniem go jako względnie uniwersalnego rozwiązania : developer.mozilla.org/en-US/docs/Web/CSS/…
cursor: default
załatwił mi sprawę, gdy nic innego nie działało.
Spróbuj utworzyć procedurę obsługi dla zdarzenia select na tych elementach, a w module obsługi możesz wyczyścić zaznaczenie.
Spójrz na to:
Wyczyść zaznaczenie tekstu za pomocą JavaScript
To przykład wyczyszczenia zaznaczenia. Wystarczy go zmodyfikować, aby działał tylko na określonym elemencie, którego potrzebujesz.
To działa najlepiej dla mnie:
.noSelect:hover {
background-color: white;
}