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-selecti 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 outlinestyl. Dodanie następującego CSS rozwiązało problem:
:focus {
outline: none !important;
}
user-select:nonedonikąd nie prowadzi
Ale czasami, nawet przy włączonym user-selecti touch-calloutwyłą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-colorprzed oznaczeniem go jako względnie uniwersalnego rozwiązania : developer.mozilla.org/en-US/docs/Web/CSS/…
cursor: defaultzał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;
}