2011-06-07 80 views
7

Tengo un enlace como:quitar subrayar con jQuery

HTML:

<a href="#" title=""> <img src="stack.png" alt="" title="" /> stackoverflow </a> 

CSS:

a { text-decoration: underline} 

que desea eliminar el underline de la imagen.

me trataron:

a img {text-decoration:none} 

pero no funciona.

BS: puedo hacer eso si he añadido un display:block-img pero eso puede causar un daño para el resto del sitio, también no voy a añadir una clase específica para esta sección.

¿Podría hacer eso con jQuery?

+0

Usted desea utilizar una {text-decoration: none} –

+0

tratar de reproducir el código, no estoy recibiendo ningún subrayan en mi imagen. ¿Hay otro estilo que interfiera con esto? –

+0

@ John Strickler: Quiero que mis enlaces estén subrayados – Cheerio

Respuesta

12

Usted debe hacer esto con CSS.

Se podría añadir un estilo en línea a ese enlace:

<a href="#" style="text-decoration:none;"> <img src=...etc /> stackoverflow </a> 

O usted podría agregar una clase a ese enlace:

<a href="#" title="" class="img"> <img src=...etc. /> stackoverflow </a> 

In your css... 

a.img {text-decoration:none;} 

EDIT:

Si no puede alterar el html, luego use jQuery:

$('a img').parent().css('textDecoration','none') 

(Esto es similar a lo que está arriba, pero se dirige a los padres de la img - que es el a - y luego cambia el estilo de manera apropiada.)

violínhttp://jsfiddle.net/jasongennaro/vM55K/

EDITAR 2:

Si ese es el único elemento en un childa, podría utilizar esto:

$('a').children().css('textDecoration','none') 

violínhttp://jsfiddle.net/jasongennaro/vM55K/1/

+0

no se puede editar el código HTML.Solo puedo agregar un código de jquery o css – Cheerio

+0

Realicé una edición @MiniNaim –

+0

gennaro: Gracias pero quiero que el enlace 'stackoverflow' esté subrayado – Cheerio

1

Esto debería hacerlo por usted.

$('a img').css('text-decoration','none') 
+0

Es lo mismo. no funciona – Cheerio

+0

escribió que ya lo probé agregando el CSS correcto pero no funciona. No funciona con jQuery también http://jsfiddle.net/XFVMQ/1/ – Sotiris

+0

Colóquelo dentro de una función lista y cambie 'a img' por 'a' - vea nuevo violín: http://jsfiddle.net/ XFVMQ/2/o http://jsfiddle.net/XFVMQ/5/ –

0

Es posible que desee utilizar CSS: a img {border: none} o usted podría intentar establecer la imagen para display: inline-block

+1

+1 - La imagen no debe tener un subrayado, per se, pero podría tener un borde, dependiendo de los valores predeterminados del navegador. – FishBasketGordo

+0

Como dije antes: la solución es agregar un 'display: block' al' img' pero eso causará un daño – Cheerio

+0

usando un bloque en línea que probablemente evitará parte del 'daño', pero su mejor opción es eliminar el frontera. Como @FishBasketGordo mencionado anteriormente, las imágenes realmente no tienen subrayados, tienen fronteras. establecer el borde a 'ninguno' o '0px' debería resolver este problema. – Dan

0

creo que es mejor para separar el ancla para img y para el texto.Pruebe el siguiente marcado:

<a href="#" title=""><img src="stack.png" alt="" title="" /></a><a href="#" title="">stackoverflow </a> 

Demostración: http://jsfiddle.net/XFVMQ/


Una segunda solución, según mi comentario, es añadir margin-bottom:-3px para a img.

Demostración: http://jsfiddle.net/XFVMQ/


Una tercera solución para añadir outline: 3px solid white; para a img esto anulará el subrayado, cambiar el color adecuado.

Demostración: http://jsfiddle.net/XFVMQ/6/

+0

No puedo hacer eso porque ejecuto un script PHP, así que no puedo editar o generar el código :) – Cheerio

+2

@MiniNaim, entonces el único método "sucio" que puedo pensar es agregar 'a img {margin-bottom: -3px} '. Esto moverá el subrayado con el resultado que debe cubrir la imagen. http://jsfiddle.net/XFVMQ/3/ – Sotiris

1

¿Qué pasa:

$ ("img [src =" stack.png "]) css. (" Text-decoration", "ninguna");

** Editar

es el problema de cómo añadir estilos al elemento específico sin afectar al resto de la DOM, o es su problema de qué estilos es necesario establecer a específicamente a deshacerse de los subrayados?

1

Usted podría intentar algo como esto:

$("a img").parentsUntil("a").css("text-decoration","none"); 
1

Tal vez sea un problema de especificidad?

fronteras intente quitar y toda la decoración utilizando un selector CSS más específico:

a > img { 
    border: none; 
    text-decoration: none; 
} 
+0

Gracias. He intentado muchas soluciones con CSS antes de escribir mi pregunta. No funciona – Cheerio

Cuestiones relacionadas