Cuando un elemento HTML está 'enfocado' (actualmente seleccionado / tabulado), muchos navegadores (al menos Safari y Chrome) colocarán un borde azul a su alrededor.
Para el diseño en el que estoy trabajando, esto distrae y no se ve bien.
<input type="text" name="user" class="middle" id="user" tabindex="1" />
Firefox no parece hacer esto, o al menos, me permitirá controlarlo con:
border: x;
Si alguien me puede decir cómo funciona IE, sería curioso.
Hacer que Safari elimine este pequeño destello sería bueno.
input:focus, textarea:focus {outline: none;}
select:focus {outline:none;}
<button>
etiqueta, que es utilizada por jQuery UI y Twitter Bootstrap, entre otras cosas, por lo que agregaríabutton: focus
a la lista para completar.button, button:focus { outline:none; }
Para eliminarlo de todas las entradas
fuente
Este es un hilo antiguo, pero como referencia es importante tener en cuenta que no se recomienda deshabilitar el contorno de un elemento de entrada ya que dificulta la accesibilidad.
La propiedad de esquema está ahí por una razón: brinda a los usuarios una indicación clara del enfoque del teclado. Para más información y fuentes adicionales sobre este tema, visite http://outlinenone.com/
fuente
Only thing is that you won't be able to see the focus(outline focus) on it
, y ese es exactamente mi punto. La eliminación del contorno deshabilita la indicación visual del evento de enfoque, no el evento real. Eliminar la indicación visual significa que está haciendo que sea más difícil para las personas con discapacidad que confían en esa indicación.outline:none;
) sin considerar las implicaciones. El hecho de que algo sea fácil y ahorre tiempo no significa que sea la mejor práctica :)Esta es una preocupación común.
El esquema predeterminado que representan los navegadores es feo.
Vea esto por ejemplo:
Mostrar fragmento de código
La "solución" más común que la mayoría recomienda es
outline:none
, que si se usa incorrectamente, es un desastre para la accesibilidad.Entonces ... ¿de qué sirve el esquema de todos modos?
Hay una página web en seco corte muy encontré que explica todo muy bien.
Ok, probemos el mismo ejemplo que el anterior, ahora use la
TAB
tecla para navegar.Mostrar fragmento de código
¿Observa cómo puede saber dónde está el foco incluso sin hacer clic en la entrada?
Ahora, probemos
outline:none
con nuestro fiel<input>
Entonces, una vez más, use la
TAB
tecla para navegar después de hacer clic en el texto y ver qué sucede.Mostrar fragmento de código
¿Ves cómo es más difícil descubrir dónde está el foco? El único signo revelador es el cursor parpadeando. Mi ejemplo anterior es demasiado simplista. En situaciones del mundo real, no tendría un solo elemento en la página. Algo más en la línea de esto.
Mostrar fragmento de código
Ahora compare eso con la misma plantilla si mantenemos el esquema:
Mostrar fragmento de código
Entonces hemos establecido lo siguiente
Entonces, ¿cuál es la respuesta?
Elimine el contorno feo y agregue sus propias señales visuales para indicar el enfoque.
Aquí hay un ejemplo muy simple de lo que quiero decir.
Elimino el contorno y agrego un borde inferior en : foco y : activo . También elimino los bordes predeterminados en los lados superior, izquierdo y derecho configurándolos como transparentes en : foco y : activo (preferencia personal)
Mostrar fragmento de código
Entonces, intentamos el enfoque anterior con nuestro ejemplo del "mundo real" de antes:
Mostrar fragmento de código
Esto puede extenderse aún más mediante el uso de bibliotecas externas que se basan en la idea de modificar el "esquema" en lugar de eliminarlo por completo como Materialise
Puedes terminar con algo que no es feo y funciona con muy poco esfuerzo
Mostrar fragmento de código
fuente
Esto me confundió por un tiempo hasta que descubrí que la línea no era un borde o un contorno, era una sombra. Entonces, para eliminarlo, tuve que usar esto:
fuente
¡Podrías usar CSS para deshabilitar eso! Este es el código que uso para deshabilitar el borde azul:
¡Esto eliminará el borde azul!
Este es un ejemplo de trabajo: JSfiddle.net
¡Espero eso ayude!
fuente
Eliminar todos los estilos de enfoque es malo para la accesibilidad y los usuarios de teclado en general. Pero los contornos son feos y proporcionar un estilo enfocado personalizado para cada elemento interactivo puede ser un verdadero dolor.
Entonces, el mejor compromiso que he encontrado es mostrar los estilos de contorno solo cuando detectamos que el usuario está usando el teclado para navegar. Básicamente, si el usuario presiona TAB, mostramos los contornos y si usa el mouse, los ocultamos.
No le impide escribir estilos de enfoque personalizados para algunos elementos, pero al menos proporciona un buen valor predeterminado.
Así es como lo hago:
fuente
click
oyente es un buen toque.Intenté todas las respuestas y aún no pude hacer que la mía funcionara en Mobile , hasta que lo encontré
-webkit-tap-highlight-color
.Entonces, lo que funcionó para mí es ...
fuente
La única solución que funcionó conmigo
fuente
Usa este código:
fuente
Ninguna de las soluciones me funcionó en Firefox.
La siguiente solución cambia el estilo de borde en foco para Firefox y establece el contorno en ninguno para otros navegadores.
Efectivamente, hice que el borde de enfoque pasara de un brillo azul de 3 píxeles a un estilo de borde que coincida con el borde del área de texto. Aquí hay algunos estilos de borde:
Borde discontinuo (borde 2px rojo discontinuo):
¡Sin bordes! (borde 0px):
Borde de área de texto (borde 1px gris sólido):
Aquí está el código:
fuente
Puedes probar esto también
o
fuente
Puede eliminar el borde naranja o azul (contorno) alrededor de los cuadros de texto / entrada usando: esquema: ninguno
fuente
Elimine el contorno cuando el foco esté en el elemento, utilizando la propiedad CSS a continuación:
Esta propiedad CSS elimina el contorno de todos los campos de entrada en foco o usa una pseudo clase para eliminar el contorno del elemento usando la propiedad CSS a continuación.
Esta propiedad elimina el contorno del elemento seleccionado.
fuente
Prueba esto
Esto afectaría a todas sus páginas
fuente