Jak usunąć obramowanie konturu z przycisku wprowadzania

141

po kliknięciu w innym miejscu obramowanie znika, próbowałem nie skupić się, ale nie pomogło, jak sprawić, by brzydka ramka przycisku zniknęła po kliknięciu?

input[type="button"] {
  width: 120px;
  height: 60px;
  margin-left: 35px;
  display: block;
  background-color: gray;
  color: white;
  border: none;
}
<input type="button" value="Example Button">

Cindy Turlington
źródło
wygląda dobrze na mojej przeglądarce Mozilla
Drixson Oseña,
1
Prostokąt fokusa ma pomóc użytkownikowi zaobserwować, że kliknięcie było skuteczne, a tym samym zapobiec przypadkowemu dwukrotnemu kliknięciu. Czy na pewno rozwiązujesz problem, a nie go tworzysz?
Jukka K. Korpela

Odpowiedzi:

195

przy użyciu konturu: brak; możemy usunąć tę granicę w chrome

<style>
input[type="button"]
{
    width:120px;
    height:60px;
    margin-left:35px;
    display:block;
    background-color:gray;
    color:white;
    border: none;
    outline:none;
}
</style>
Ankit Agrawal
źródło
19
W przeglądarce Chrome musiałem dodać outline: none;regułę input[type="button"]:focuszamiast input[type="button"].
Śpiewał Cho
@SungCho: Dzięki. Twoja metoda mi pomogła.
priyamtheone
76

Wyostrz kontury w Chrome i FF

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj

oddalony:

wprowadź opis obrazu tutaj

input[type="button"]{
   outline:none;
}
input[type="button"]::-moz-focus-inner {
   border: 0;
}

Próbny

Dostępność (A11Y)

/* Don't forget! User accessibility is important */
input[type="button"]:focus {
  /* your custom focused styles here */
}
Roko C. Buljan
źródło
54

U mnie to działa po prostu :)

*:focus {
    outline: 0 !important;
}
X-Coder
źródło
1
To jedyna odpowiedź, która u mnie zadziałała, ale jak byś to zrobił bez! Ważne? Słyszałem z wielu źródeł, że należy go używać tylko wtedy, gdy jest to absolutnie konieczne.
Jay
Taką stylizację przycisków wykonałem dla całej aplikacji w zewnętrznym css. Jeśli chcesz to zignorować, możesz to zrobić z #id w css, używając tego w każdym przycisku: # button-tyle {outline: 0; } lub użyj tego samego stylu dla wszystkich przycisków bez #id w każdym przycisku, oto link demonstracyjny : input [type = "button"] {width: 70px; wysokość: 30px; margin-left: 72px; margin-top: 15px; Blok wyświetlacza; kolor tła: szary; kolor biały; obramowanie: brak; zarys: 0; }
X-Coder
19

Ten pracował dla mnie

button:focus {
    border: none;
    outline: none;
}
mnis.p
źródło
14

outlineObiekt jest to, czego potrzebujesz. Skrótem jest ustawienie każdej z poniższych właściwości w jednej deklaracji:

  • outline-style
  • outline-width
  • outline-color

Możesz użyć outline: none;, co sugeruje zaakceptowana odpowiedź. Możesz też podać bardziej szczegółowe informacje, jeśli chcesz:

button {
    outline-style: none;
}
henrywright
źródło
9
button:focus{outline:none !important;}

dodaj, !importantjeśli jest używany w Bootstrap

user11173874
źródło
1
Myślę, że pytający już tego próbował, mimo wszystko, mówi pytanie tried onfocus none, but didn't help.
JJ dla Transparency i Monica
6

Ustaw właściwości outlinei box-shadowwłaściwości przycisku na nonei nadaj im znaczenie .

input[type="button"] {
    outline: none !important;
    box-shadow: none !important;
} 


Powodem ustawienia wartości na ważne jest to, że jeśli używasz innych bibliotek CSS lub struktur, takich jak Bootstrap, może zostać zastąpiony.

Eyoab
źródło
4

Aby uniknąć problemu spowodowanego zmianą właściwości konturu na fokusie, należy nadać efekt wizualny, gdy użytkownik kliknie przycisk wprowadzania danych lub kliknie go.

W tym przypadku jest to typ przesyłania, ale możesz zastosować również do przycisku type = ".

input[type="submit"]:focus {
    outline: none !important;
    background-color: rgb(208, 192, 74);
}

A.Peralta
źródło
3

To znacznie proste, niż myślisz. Gdy przycisk jest skoncentrowany, zastosuj outlinewłaściwość, na przykład:

button:focus {
    outline: 0 !important;
}

Ale kiedy używam nonewartości, to na mnie nie działa.

Gourav
źródło
3

Usunięcie zdarzenia dostępnego w nessorry nie jest dobrym pomysłem w standardowych programach WWW. tak czy inaczej, jeśli szukasz rozwiązania, usunięcie tylko konturu nie rozwiąże problemu. musisz także usunąć niebieski cień koloru. w określonych scenariuszach użyj oddzielnej nazwy klasy, aby wyodrębnić ten specjalny styl dla swojego przycisku.

.btn.focus, .btn:focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, .25);
}

Lepiej to zrób

.remove-border.focus, .remove-border:focus {
        outline: 0;
        box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, .25);
 }
asith
źródło
2

Usunięcie konturu to koszmar dostępności. Osoby korzystające z klawiatury nigdy nie dowiedzą się, na jakim elemencie się znajdują.

Najlepiej go zostawić, ponieważ większość klikniętych przycisków i tak gdzieś zaprowadzi, lub jeśli MUSISZ usunąć kontur, wyodrębnij z niego określoną nazwę klasy.

.no-outline {
  outline: none;
}

Następnie możesz ubiegać się o tę klasę, kiedy tylko zajdzie taka potrzeba.

martinedwards
źródło
2

Biorąc pod uwagę poniższy kod HTML:

<button class="btn-without-border"> Submit </button>

W stylu css wykonaj następujące czynności:

.btn-without-border:focus {
    border: none;
    outline: none;
}

Ten kod usunie obramowanie przycisku i wyłączy fokus na obramowaniu przycisku po kliknięciu przycisku.

Mwiza
źródło
2

Jak wielu innych wspomniało, selector:focus {outline: none;}usunie to obramowanie, ale to obramowanie jest kluczową funkcją ułatwień dostępu, która pozwala użytkownikom klawiatury znaleźć przycisk i nie powinno być usuwane.

Ponieważ twoja troska wydaje się być estetyczna, powinieneś wiedzieć, że możesz zmienić kolor, styl i szerokość konturu, dzięki czemu lepiej dopasuje się on do stylizacji Twojej witryny.

selector:focus {
  outline-width: 1px;
  outline-style: dashed;
  outline-color: red;
}

Stenografia:

selector:focus {
  outline: 1px dashed red;
}
dave
źródło