el botón de arranque muestra un contorno azul cuando se hace clic

137

Agregué esto, pero aún aparece el contorno azul cuando se hace clic en el botón.

.btn:focus {
  outline: none;
}

¿Cómo quitar esa cosa fea?

usuario3522457
fuente
intenta configurar :activeel botón. Adicional: Use el Inspector en su navegador para encontrar el Problema.
Adrian Preuss
1
Se puede publicar su código de poco más o demostración jsFiddle para que podamos ayudarle
Richa
No estoy seguro acerca de los botones, pero bootstrap agrega box-shadow a los campos de entrada que se pueden eliminar con box-shadow: none;
davidcondrey
3
FWIW, el estilo de enfoque es importante para la navegación del teclado.
Nate Whittaker
Una foto sería útil aquí
Sopa de pollo

Respuestas:

203

Puede ser que sus propiedades se anulen. Intente adjuntar !importanta su código junto con: active.

.btn:focus,.btn:active {
   outline: none !important;
   box-shadow: none;
}

También agregue box-shadow porque de lo contrario aún verá el botón de sombra alrededor.

¡Aunque esta no es una buena práctica para usar! Important, te sugiero que uses una clase más específica y luego intentes aplicar el CSS con el uso de! Important ...

Janak
fuente
@Janak Pero, ¿por qué es necesario al anular el: activo?
También puedo agregar que cuando ataca con! Important, las pseudo-clases no son necesarias
77
Si está utilizando Bootstrap 4, agregue box-shadow: none(y no olvide el prefijo -webkit-box-shadow: none) a esta respuesta. También tenga en cuenta que Bootstrap 4 ya tiene .btn:focus { outline: none }en sus clases btn.
Cooleronie
1
Las señales visuales son críticas cuando no se navega con el mouse. Si elimina el esquema, debe agregar algún otro comentario visual, o habrá paralizado su sitio.
Josef Engelfrost
52

En la última versión de Bootstrap, descubrí que eliminar el esquema en sí no funciona. Y tengo que agregar esto porque también hay una sombra de cuadro:

.btn:focus, .btn:active {
  outline: none !important;
  box-shadow: none !important;
}
Chang
fuente
1
Esto es lo que me ayudó.
Vahx
Si desea asegurarse de que está presionando todos sus botones, simplemente use button {outline: none! Important; box-shadow: ninguno! importante; }
Drew
52

Hay una clase boostrap incorporada shadow-nonepara deshabilitar box-shadow(no outline) ( https://getbootstrap.com/docs/4.1/utilities/shadows/ ). Esto elimina la sombra del botón:

<button class='btn btn-primary shadow-none'>Example button</button>
Rinat
fuente
Muchas gracias.
Nikolay Tsenkov
3
esta es la mejor respuesta
jmrueda
1
Esta es la solución que estás buscando. Esta es la solución, avanzar, avanzar. Gracias, esto lo resolvió para Firefox con Bootstrap 4.
swudev
Esta publicación trata sobre eliminar el contorno, no la sombra. Lamentablemente, este comentario es engañoso.
Clay Records
Sí, fue la mejor respuesta, pero por qué no se acepta en el botón cruzado Descartar alertas
Nawaraj
19

Probar debajo del código

.button:active, 
 button:active,
.button:focus, 
 button:focus,
.button:hover, 
 button:hover{
    border:none !important;
    outline:none !important;
}
Arenoso
fuente
44
Solo necesitaba esta parte para eliminar el contorno en Chrome: button: focus {outline: none;}
TTT
13

Esto me estaba sucediendo en Chrome (aunque no en Firefox). Descubrí que outlineBootstrap establece la propiedad como outline: 5px auto -webkit-focus-ring-color;. Se resolvió anulando la outlinepropiedad más adelante en mi CSS personalizado de la siguiente manera:

.btn.active.focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn:active:focus, .btn:focus {
    outline: 0;
}
Barburakka
fuente
12

esto resolverá el botón con un texto, el botón solo un icono o un botón es un enlace:

 <!--1. button with a text -->
 <button type="button" class="btn btn-success" id="newWord">Save</button>

 <!--2. button only with a close icon -->
 <button type="button" class="close"></button>

 <!--3. button is a link -->
 <a class="btn btn-success btn-xs" href="#">Save</a>



button,
button:active,
button:focus, 
button:hover,
.btn,
.btn:active, 
.btn:focus, 
.btn:hover{   
    outline:none !important;
}

si agregas border:none !important;

{
    border:none !important;
    outline:none !important;
}

entonces el botón se reducirá al hacer clic.

Remolino
fuente
8

Prueba esto

.btn
{
    box-shadow: none;
    outline: none;
}
Subodh Sharma
fuente
7

En Bootstrap 4 usan box-shadow: 0 0 0 0px rgba(0,123,255,0);: foco, si resolví mi problema con

a.active.focus,
a.active:focus,
a.focus,
a:active.focus,
a:active:focus,
a:focus,
button.active.focus,
button.active:focus,
button.focus,
button:active.focus,
button:active:focus,
button:focus,
.btn.active.focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn:active:focus,
.btn:focus {
    outline: 0;
    outline-color: transparent;
    outline-width: 0;
    outline-style: none;
    box-shadow: 0 0 0 0 rgba(0,123,255,0);
}
Slobodan Kovacevic
fuente
4

Incluso después de eliminar el contorno del botón al establecer su valor en 0, todavía hay un comportamiento divertido en el botón cuando se hace clic, su tamaño se reduce un poco. Entonces se me ocurrió una solución óptima:

.btn:focus {
   outline: none !important;
   box-shadow: 0 0 0 0;
}

Espero que esto ayude...

hoodboy007
fuente
3

Debe usar el anidamiento adecuado y luego aplicarle estilos.

  • Haga clic con el botón derecho en el botón y encuentre la clase exacta que anida usando (Inspeccionar elemento usando firebug para firefox), (inspeccionar elemento para cromo).

  • Agregue estilo a toda la clase. Solo entonces funcionaría

Orahmax
fuente
3

Encontré esto bastante útil en mi caso después de hacer clic en el botón.

$('#buttonId').blur();
Danny Cullen
fuente
3

Opté por eliminar simplemente el ancho del borde :focus. Esto elimina el espacio feo entre el contorno y las esquinas redondeadas del botón. Por alguna razón, este problema solo ocurre en elementos de botón reales y no en <a class="btn">elementos.

button.btn:focus {
  border-width: 0;
}
Jason
fuente
3

Esto puede ayudar si alguien todavía tiene esta pregunta sin resolver.

(function() {
  $('button').on('click', function() {
    $("#action").html("button was clicked");
    console.log("the button was clicked");
  });
})();
.btn-clear {
  background-color: transparent !important;
  border-style: none !important;
  cursor: pointer;
}

.btn-clear:active,
.btn-clear:focus {
  outline-style: none !important;
  outline-color: transparent;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- this button has default style -->
<button>Action</button>
<!-- this button is clear of style -->
<button class="btn-clear">Action</button>

<label id="action"></label>

Gaby Evangelista
fuente
3

Aquí está mi solución Boostrap 4 para eliminar el contorno del botón

/*
* Boostrap 4
* Remove blue outline from button
*/

.btn:focus,
.btn:active {
  box-shadow: none;
}
0x1ad2
fuente
3

Acabo de tener el mismo problema y el siguiente código funcionó para mí:

.btn:active, .btn:focus, .btn:active:focus, .btn.active:focus {
    outline: none !important;
}

.btn {
  margin:32px;
}
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->




<button type="button" class="btn btn-default">Button</button>

¡Esperando que ayude!

Pablo
fuente
¡contorno! doh !! thud
Adam Cox
3

En realidad, en bootstrap se definen todas las variables para todos los casos. En su caso, solo tiene que anular la variable predeterminada '$ input-btn-focus-box-shadow' del archivo '_variables.scss'. Así: $input-btn-focus-box-shadow: none; tenga en cuenta que debe anular esa variable en su propio '_yourCusomVarsFile.scss' personalizado. Y ese archivo debe importarse en el proyecto en primer orden y luego bootstrap así:

@import "yourCusomVarsFile";
@import "bootstrap/scss/bootstrap";
@import "someOther";

Los bootstraps vars van con la bandera '! Default'.

$input-focus-box-shadow: $input-btn-focus-box-shadow !default;

Entonces, en su archivo, anulará los valores predeterminados. Aquí la ilustración:

$input-focus-box-shadow: none;
$input-focus-box-shadow: $input-btn-focus-box-shadow !default;

La primera var tiene más prioridad que la segunda. Lo mismo es para los demás estados y casos. Espero que te ayude.

Aquí está el archivo '_variable.scss' del repositorio, donde puede encontrar todos los valores iniciales de bootstrap: https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss

Chears

Tsurule Vol
fuente
2
a:focus {
  outline: none;
}

esto me funciona en BS3

Alex LH
fuente
2

Este me funcionó en Bootstrap 4:

.btn {border-color: transparent;}

Steffo Dimfelt
fuente
2

Tratar

.btn-primary:focus { 
  box-shadow: none !important; 
}
Punitkumar Kulli
fuente
1

Tenga en cuenta que si su botón está dentro de un ancla como:

<a href='some_link'>
    <button class='btn'>Button</button>
</a>

Agregar el estilo al botón en sí mismo puede no ser suficiente, es posible que deba agregar las a:focus, a:active { outline: none }reglas CSS cuando corresponda (esto funcionó para mí).

RyanT
fuente
1

Prueba lo siguiente

.bootstrap-select .dropdown-toggle:focus 
 {
          outline: 0 !important;
 }
Iryna Koshynska
fuente
1

A veces {outline: 0}no resolvió el problema y podemos intentar{box-shadow: none;}

xhunter
fuente
1

Estoy usando bootstrap 4, puedes usar bocetos y recuadros.

#buttonId {
    box-shadow: none;
    outline: none;
}

O si el botón está dentro de un elemento como un div sin fondo, box-shadow es suficiente.

#buttonId {
     box-shadow: none;
}

Ejemplo: https://codepen.io/techednelson/pen/XRwgRB

webtechnelson
fuente
1

Si está utilizando la versión 4.3 o superior, su código no funcionará correctamente. Esto es lo que usé. A mí me funcionó.

.btn:focus, .btn:active {
    outline: none !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
}
Vaibhav Singh
fuente
Tienes razón. No funciona sin -webkit-box-shadow: ¡ninguno! Importante; línea.
Emir
1

En lugar de apuntar a la clase de botón ( .btn ), aquí apunto al elemento del botón y funciona para mí.

        button:focus {
          outline:none !important;
          box-shadow:none !important;
        }

Y puede usar la shadow-noneclase para el campo de entrada

Nawaraj
fuente
0

Aquí hay un método que no es CSS. Usando JQuery, simplemente elimine la clase "focus" cada vez que se haga clic en el elemento.

$(".btn").mousemove(function(element) { $(this).removeClass("focus"); });

Este método puede hacer que el borde aparezca y luego retroceder brevemente, lo que no se ve mal en mi opinión (parece que es parte de la respuesta cuando se hace clic en el botón).

La razón por la que usé .mousemove () es que .click () y .mouseup () resultaron ser ineficaces.

Wesley Kelly
fuente
2
neh agregar más javascript para derrotar a CSS no es la mejor práctica. EN MI HUMILDE OPINIÓN.
David
0

Cambiar estos valores funcionó para mí. Lo encontré mirando las Herramientas para desarrolladores de Chrome

.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show>.btn-primary.dropdown-toggle {
    color: #fff;
    background-color: /*Change This*/;
    border-color: /*Change This*/;
}

Esto también conserva la sombra del botón, solo cambia el color del botón al hacer clic.

Ivan Aldwin A. Cristobal
fuente
0

Anule las instrucciones exactas de arranque:

.btn-primary.focus, .btn-primary:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{
 box-shadow: none;
}
ZEF
fuente
0

Cambiar el color del borde a gris

.btn:focus,
.btn:active{
 border: 1px solid #ced4da !important;
}
Aransiola Oluwaseun
fuente
0

La forma SCSS para todos los elementos (no solo los botones):

body {
  * {
    &:focus, &.focus,
    &:active, &.active {
      outline: transparent none 0 !important;
      box-shadow: 0 0 0 0 rgba(0,123,255,0) !important;
      -webkit-box-shadow: none !important;
    }
  }
}
gildniy
fuente