Zastanawiam się, czy można usunąć domyślną niebieską i żółtą poświatę po kliknięciu pola wprowadzania / obszaru tekstowego za pomocą CSS?
css
cross-browser
Alec Smart
źródło
źródło
Odpowiedzi:
Chociaż argumentowano, że zachowanie blasku / konturu jest w rzeczywistości korzystne dla dostępności, ponieważ może pomóc użytkownikom zobaczyć, który element jest aktualnie skupiony.
Możesz także użyć pseudoelementu „: focus”, aby kierować dane wejściowe tylko wtedy, gdy użytkownik je zaznaczy.
Demo: https://jsfiddle.net/JohnnyWalkerDesign/xm3zu0cf/
źródło
Ten efekt może wystąpić także na elementach niepochodzących z wejścia. Znalazłem następujące prace jako bardziej ogólne rozwiązanie
Aktualizacja: może nie być konieczne użycie
:focus
selektora. Jeśli masz element, powiedzmy<div id="mydiv">stuff</div>
, i otrzymujesz zewnętrzny blask na tym elemencie div, po prostu zastosuj jak normalnie:źródło
<button>
elementów, które nie korzystają szczególnie z jaśniejącego ogniskowania, ponieważ i tak najczęściej je klikasz.45.0.2454.101 m
:focus
selektora, po prostu umieściłemoutline-color
ioutline-style
na css mojej div.W przypadku zmiany rozmiaru obszaru tekstowego w przeglądarkach internetowych:
Ustawienie maksymalnej wysokości i maksymalnej szerokości w obszarze tekstowym nie usunie wizualnego uchwytu zmiany rozmiaru. Próbować:
(i tak zgadzam się z „staraj się unikać robienia czegokolwiek, co łamie oczekiwania użytkownika”, ale czasem ma to sens, np. w kontekście aplikacji internetowej)
Aby dostosować wygląd elementów formularza od zera:
źródło
none
,both
,horizontal
,vertical
, iinherit
.Carl W :
Wytłumaczę to:
:focus
oznacza, że stylizuje elementy, które są w centrum uwagi. Więc projektujemy elementy w centrum uwagi.outline-color: transparent;
oznacza, że niebieski blask jest przezroczysty.outline-style: none;
robi to samo.źródło
Doświadczyłem tego podczas
div
zdarzenia kliknięcia i po 20 wyszukiwaniach znalazłem ten fragment, który uratował mi dzień.Wyłącza to domyślne podświetlanie przycisków w przeglądarkach mobilnych webkit
źródło
Jest to rozwiązanie dla osób dbających o dostępność .
Proszę nie używać
outline:none;
do wyłączania konturu fokusa. Jeśli to zrobisz, zabijasz dostęp do sieci. Jest dostępny sposób na to.Sprawdź ten artykuł , który napisałem, aby wyjaśnić, jak usunąć granicę w przystępny sposób.
W skrócie chodzi o to, aby pokazać obramowanie konturu tylko wtedy, gdy wykryjemy użytkownika klawiatury. Gdy użytkownik zacznie używać myszy, wyłączamy kontur. W rezultacie otrzymujesz to, co najlepsze.
źródło
Jeśli chcesz usunąć blask z przycisków w Bootstrap (co niekoniecznie jest moim zdaniem złe UX), potrzebujesz następującego kodu:
źródło
.btn:active:focus
było konieczne, aby usunąć poświatę, jednocześnie przytrzymując przycisk.To rozwiązanie działało dla mnie.
źródło
czasami zdarza się, że przyciski również następnie użyj poniżej, aby usunąć linię zewnętrzną
źródło
źródło
Uznałem, że pomocne jest usunięcie obrysu przycisku wejściowego typu „drzwi przesuwne”, ponieważ kontur nie obejmuje prawej „pokrywy” obrazu drzwi przesuwnych, przez co stan skupienia wygląda trochę niepewnie.
źródło
Musiałem tylko usunąć ten efekt z moich pól wprowadzania tekstu i nie mogłem sprawić, by inne techniki działały całkiem dobrze, ale to właśnie dla mnie działa;
Testowane w przeglądarce Firefox i Chrome.
źródło
Pewnie! Niebieską ramkę można usunąć również ze wszystkich elementów HTML za pomocą *
I
źródło