¿Cómo puedo eliminar el contorno de las imágenes de hipervínculos?

96

Cuando usamos Reemplazo de texto usando CSS y damos una sangría de prueba negativa, es decir text-indent:-9999px. Luego, cuando hacemos clic en ese enlace, la línea de puntos aparece como en la imagen de muestra a continuación. ¿Cuál es la solución para esto?

ingrese la descripción de la imagen aquí

Wasim Shaikh
fuente
3
Por favor, no lo elimine, está ahí por motivos de accesibilidad.
Duplicado: stackoverflow.com/questions/1142819/… (¡pero consulte los comentarios de accesibilidad arriba!)
JohnB
Llegué a esto usando el término de búsqueda incorrecto. Recomiendo a cualquiera que lea esto que también esté al tanto de estos subrayados en IE
JGallardo

Respuestas:

167

Para eliminar el contorno de la etiqueta de anclaje

a {outline : none;}

Eliminar el contorno del enlace de la imagen

a img {outline : none;}

Eliminar el borde del enlace de la imagen

img {border : 0;}
Descubrir
fuente
1
Gracias, Discover. Eso me había estado molestando durante mucho tiempo, no solo las fotos con hipervínculos en IE, sino también las fotos normales sin hipervínculo. Fue molesto hasta que encontré tu respuesta (a través de Google, no Stack, por extraño que parezca).
Jason Weber
25

Puede utilizar la propiedad CSS "esquema" y el valor "ninguno" en el elemento de anclaje.

a {
outline: none;
}

Espero que ayude.

Dean Burge
fuente
9

Tenga en cuenta que los estilos de enfoque están ahí por una razón: si decide eliminarlos, las personas que navegan a través del teclado ya no saben qué está enfocado, por lo que está perjudicando la accesibilidad de su sitio web.

(Mantenerlos en su lugar también ayuda a los usuarios avanzados a los que no les gusta usar el mouse)

Wolfr
fuente
No quitamos: estilo de enfoque. solo agregando un esquema de estilo: ninguno tan. otro estilo predeterminado estará allí.
Wasim Shaikh
1
Entonces, ¿cuál es el "otro estilo predeterminado"? Hasta donde yo sé, solo hay uno, la línea de puntos.
Wolfr
1
Ok ... Quizás podamos usar el estilo Diffrent para lectores de pantalla. esta puede ser una solución para la accesibilidad.
Wasim Shaikh
No solo los lectores de pantalla usan el esquema, a algunas personas también les gusta navegar por sitios web que utilizan su teclado.
user2019515
8

Existe el mismo efecto de borde en Firefox e Internet Explorer (IE) , se vuelve visible cuando haces clic en algún enlace.

Este código arreglará solo IE:

a:active { outline: none; }.

Y este arreglará tanto Firefox como IE :

:active, :focus { outline: none; -moz-outline-style: none; }

El último código debe agregarse a su hoja de estilo, si desea eliminar los bordes del enlace de su sitio.

Miguel
fuente
1
Gracias Mike, esta es realmente una buena respuesta. pero usando -moz-outline-style: none; no es CSS válido. aún así, esta es una buena opción
Wasim Shaikh
5

incluya este código en su hoja de estilo

img {border : 0;}

a img {outline : none;}
Roko C. Buljan
fuente
3

Espero que esto sea útil para algunos de ustedes, se puede usar para eliminar el contorno de enlaces, imágenes y flash y de MSIE 9:

    a, a:hover, a:active, a:focus, a img, object, embed {
    outline: none;
    ie-dummy: expression(this.hideFocus=true); /* MSIE - Microsoft Internet Explorer 9 remove outline */
    }

El siguiente código puede ocultar el borde de la imagen:

    img {
    border: 0;
    }

Si desea admitir Firefox 3.6.8 pero no Firefox 4 ... Al hacer clic hacia abajo en un tipo de entrada = imagen, también puede producir un contorno de puntos, para eliminarlo en las versiones anteriores de Firefox, lo siguiente funcionará:

   input::-moz-focus-inner { 
   border: 0; 
   }

IE 9 no permite en algunos casos eliminar el contorno punteado alrededor de los enlaces a menos que incluya esta metaetiqueta entre y en sus páginas:

     <meta http-equiv="X-UA-Compatible" content="IE=9" />
jagb
fuente
@Sparky Creo que deberíamos ofrecer una respuesta que responda a la pregunta explicando cómo hacer esto en los navegadores más utilizados, incluido MSIE, ya que era un navegador ampliamente utilizado en 2014 e información sobre la metaetiqueta de MS y CSS que se puede usar para MSIE solo Era solo una parte de mi respuesta para ofrecer soporte para la mayoría de los navegadores, incluido MSIE ... La pregunta NO era sobre HTML o CSS válido de W3C ...
jagb
@Sparky +1 porque eso es cierto y nunca deberíamos confiar en las etiquetas MS css / html / meta, ya que rara vez piensan en los estándares del W3C ... No dije que sea bueno usar las metaetiquetas de Microsoft y su código CSS como Los únicos navegadores que admiten el código MS son MSIE y los navegadores relacionados con MS. Como respuesta solicitada a la pregunta "¿Cómo puedo eliminar el contorno alrededor de las imágenes de hipervínculos?"
jagb
Simplemente hice un comentario expresando mis observaciones.
Sparky
Sin embargo, me preguntaba si podría citar una fuente para su afirmación de que esta metaetiqueta es necesaria en "algunos casos" ; y cuáles podrían ser esos casos.
Sparky
Lea el sitio web de Microsoft para obtener información, pero no toda. Hay muchas preguntas aquí en Stack Overflow, algunas de las preguntas se pueden enumerar junto a esta pregunta en la barra derecha ... en algunos casos, MSIE / EDGE no puede mostrar el contenido de la página ya que el navegador no lo admite, en "algunos casos" la metaetiqueta X-UA-Compatible es útil para los visitantes de MSIE / EDGE. hay más información, una solución que funcionará está aquí Espero que esta información sea útil para usted
jagb
3

Este es el último que funciona en Google Chrome.

:link:focus, :visited:focus {outline: none;}
Sambruce Sam
fuente
1

-moz-user-focus: ignore; en navegadores basados ​​en Gecko (¡puede necesitar! importante, dependiendo de cómo se aplique)

Anónimo
fuente
1

Usar así para HTML 4.01

<img src="image.gif" border="0">

151291
fuente
1

Puede poner overflow:hiddenen la propiedad con la sangría de texto, y esa línea de puntos, que se extiende fuera de la página, desaparecerá.

He visto un par de publicaciones sobre cómo eliminar todos los contornos. Tenga cuidado al hacer esto, ya que podría reducir la accesibilidad del sitio.

a:active { outline: none; }

Personalmente, usaría solo este atributo, ya que si el :hoveratributo tiene las mismas propiedades css, evitará que los esquemas se muestren para las personas que usan el teclado para navegar.

Espero que esto resuelva tu problema.

aksu
fuente
1

Para eliminar el enlace href del esquema punteado, puede escribir en su archivo css:

a {
   outline: 0;
}
BERGUIGA Mohamed Amine
fuente
0

Apuesto a que la mayoría de los usuarios no son el tipo de usuario que usa el teclado como control de navegación. ¿Es entonces aceptable molestar a la mayoría de sus usuarios por un grupo pequeño que prefiere usar la navegación por teclado? Respuesta corta: depende de quiénes sean sus usuarios.

Además, no veo esta experiencia de la misma manera en Firefox y Safari. Entonces, este argumento parece ser principalmente para IE. En realidad, todo depende de su base de usuarios y de su nivel de conocimientos: cómo utilizan el sitio.

Si realmente desea saber dónde se encuentra y es un usuario de teclado, siempre puede mirar la barra de estado a medida que ingresa al sitio.

Dwall
fuente
0

Esto funciona perfectamente para mi

a img {border:none;}

Si-
fuente
0

Cualquier imagen que tenga un enlace tendrá un borde alrededor de la imagen para ayudar a indicar que se trata de un enlace con navegadores más antiguos. Agregar border = "0" a su etiqueta IMG HTML evitará que esa imagen tenga un borde alrededor de la imagen.

Sin embargo, agregar border = "0" a cada imagen no solo tomaría mucho tiempo sino que también aumentará el tamaño del archivo y el tiempo de descarga. Si no desea que ninguna de sus imágenes tenga un borde, cree una regla CSS o un archivo CSS que contenga el siguiente código.

img {estilo de borde: ninguno; }

Sheryar Nizar
fuente
0

No estoy seguro de si esto sigue siendo un problema para esta persona, pero sé que puede ser un dolor para muchas personas en general. Por supuesto, las soluciones anteriores funcionarán en algunos casos, pero si, por ejemplo, está utilizando un CMS como WordPress, y los esquemas los genera un complemento o un tema, lo más probable es que no que resuelva este problema, dependiendo de cómo está agregando el CSS.

Sugeriría tener una hoja de estilo separada (por ejemplo, use el complemento ' Lazyest StyleSheet ') e ingrese el siguiente CSS para anular el estilo forzado del complemento (o tema) existente:

a:hover,a:active,a:link {
    outline: 0 !important;
    text-decoration: none !important;
}

Agregar ' ! Important ' a la regla específica hará que esto sea una prioridad para generar incluso si la regla puede estar en otro lugar (ya sea en un complemento, tema, etc.).

Esto ayuda a ahorrar tiempo durante el desarrollo. Claro, puede buscar la fuente original, pero cuando está trabajando en muchos proyectos o necesita realizar actualizaciones (donde sus cambios pueden ser anulados [ no sugeridos! ]), O agregar nuevos complementos o temas, este es el mejor. recurso para ahorrar tiempo.

Espero que esto ayude ... ¡Paz!

Roger Sánchez
fuente
0

Si la solución anterior no funciona para nadie. Pruébalo también

a {
 box-shadow: none;
}
Vijayendra Shah
fuente
-9

Sí, podemos usar. CSS se restablece como a {outline:none}y también


a:focus, a:active {outline:none} para obtener las mejores prácticas en el restablecimiento de CSS, la mejor solución es usar común. :focus{outline:none}Si aún tiene la mejor opción, comparta

Wasim Shaikh
fuente
20
¿No es un poco de mala educación no aceptar una de las otras respuestas, cuyo contenido le llevó a su conclusión?
Pekka