2011-01-20 31 views
20

Chrome y Safari muestran un borde alrededor de la imagen, pero no la quiero. No hay frontera en Mozilla. Miré a través de CSS y HTML, y no puedo encontrar nada que lo esté arreglando.borde de visualización de cromo/safari alrededor de la imagen

Aquí está el código:

<tr> 
    <td class="near"> 
    <a href="../index.html"class="near_place"> 
     <img class="related_photo" /> 
     <h4 class="nearby"> adfadfad </h4> 
     <span class="related_info">asdfadfadfaf</span> 
    </a> 
    ... 

CSS:

a.near_place { 
    border: none; 
    background: #fff; 
    display: block; 
} 

a.near_place:hover{ 
    background-color: #F5F5F5; 
} 

h4.nearby { 
    height: auto; 
    width: inherit; 
    margin-top: -2px; 
    margin-bottom: 3px; 
    font-size: 12px; 
    font-weight: normal; 
    color: #000; 
    display: inline; 
} 

img.related_photo { 
    width: 80px; 
    height: 60px; 
    border: none; 
    margin-right: 3px; 
    float: left; 
    overflow: hidden; 
} 

span.related_info { 
    width: inherit; 
    height: 48px; 
    font-size: 11px; 
    color: #666; 
    display: block; 
} 


td.near { 
    width: 25%; 
    height: 70px; 
    background: #FFF; 

} 

Lo siento, copiar un código de edad antes. Aquí está el código que me está dando problemas

Gracias de antemano

+0

En respuesta a la edición de su código (lo que hace ambas respuestas proporcionadas hasta ahora irrelevante): ¿este borde está "salpicado"? – thirtydot

+0

no, solo un borde delgado y sólido. No es negro, es gris claro –

+1

Si tu código es como dices (con 'border: none;'), entonces no puedo ver cuál podría ser el problema. ¿Estás seguro de que no estás utilizando alguna versión vieja en caché? – thirtydot

Respuesta

41

Ahora no sé si esto es un error con Chrome o no, pero el borde gris aparece cuando no puede encontrar la imagen, la url de la imagen está rota o como en su caso el src no está allí. Si le da a la imagen una URL adecuada y el navegador la encuentra, el borde desaparece. Si la imagen no debe tener un src, deberá eliminar el alto y el ancho.

+1

Estoy con un problema similar, estoy usando un sprite con posición de fondo e imagen de fondo. Si elimino el ancho y la altura, la imagen simplemente desaparecerá. –

+1

@MichelAyres para un sprite necesitarás darle un alto y ancho y tendrás que mirar el código para descubrir qué está pasando. Recomendaría hacer su propia pregunta y publicar el código defectuoso para que podamos brindarle más ayuda con esto. – sarcastyx

+1

La solución de rparree es muy elegante si realmente no quieres que tenga un src con tu imagen. La otra opción es usar un elemento div en lugar de src y luego establecer la "visualización" de CSS en "bloque en línea" – Shaun314

0
img.related_photo { 
    width: 80px; 
    height: 60px; 
    **border: solid thin #DFDFDF;** //just remove this line 
    margin-right: 3px; 
    float: left; 
    overflow: hidden; 
} 
+0

Lo siento, copié algún código anterior. Aquí está el código que me está causando el problema –

0

Dentro img.related_photo, es necesario cambiar border: solid thin #DFDFDF; a border: 0.

+1

Mientras 'border: 0' técnicamente funciona, la forma correcta de hacerlo es con' border: none' porque 'border: 0' implica que todavía hay un borde, pero su ancho solo pasa a ser 0 por lo que no lo ves. – Jared

+2

@Jared: [¿La misma diferencia?] (Http://stackoverflow.com/questions/2922909/should-i-use-border-none-or-border-0) – thirtydot

12

sarcastyx tiene razón, pero si desea un workarround puede establecer el ancho y alto en 0 y un relleno para hacer espacio para su imagen.

Si quieres un icono de 36x36, se puede establecer la anchura y altura a 0 y PADING: 18px

+0

Gracias; ¡Esto me ayudó muchísimo, Gonzalo! – SoreThumb

3

Esto puede suceder cuando la imagen se plantó dinámicamente por css (por ejemplo, por http://webcodertools.com/imagetobase64converter) con el fin de evitar la extra de HTTP peticiones. En este caso, no queremos tener una imagen predeterminada debido a problemas de rendimiento. Lo resolví cambiando de una etiqueta img a una etiqueta div.

+0

http://stackoverflow.com/a/26429285/221683 funcionó para mí. –

-1

Para resumir las respuestas dadas ya: las opciones para eliminar el borde gris de un img:not([src]), pero aún así visualizar una imagen utilizando background-image en Chrome/Safari son:

  • Usar una etiqueta diferente, que doesn' t tiene este comportamiento. (Gracias @Druvision)
    Por ejemplo: div o span.
    Cara triste: no es tan semántica.

  • Utilice padding para definir las dimensiones. (Gracias @Gonzalo)
    Eg padding: 16px 10px 1px; reemplaza width:20px; height:17px;
    Cara triste: las dimensiones y las intenciones no son tan obvias en el CSS, especialmente si no es un cuadrado par como el ejemplo de @Gonalo.

5
.related_photo { 
    content: ''; 
} 
+1

Esto [quita el borde] (http://jsfiddle.net/sdhmpjy7/) en Chrome y Safari. Sin embargo, una pequeña explicación sería útil. – showdev

+2

Aunque contenido: ''; oculta los bordes cuando la imagen no está cargada, pero cuando se carga la imagen, también oculta la imagen. Entonces, esta no es una solución. –

+0

@Andrii Katsiubka esto es un truco bastante impresionante, pero no entiendo por qué el contenido hace eso ... De todos modos, es mejor aplicar esta propiedad solo para la imagen de atributo src como usando un selector css como img: not ([src]) {contenido: '' } – BurebistaRuler

1
img[src=""]{ 
    content: ""; 
} 
+3

Alguna descripción generalmente ayuda. –

5

Sé que es una vieja cuestión. Sin embargo, otra solución es establecer la src a un píxel transparente 1x1

<img class="related_photo" 
    src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /> 

Esto funciona para mí.

0

me han solucionado este problema con:

<img src="img/1.jpg" style="height:150px; position: absolute; right: 15px;"> 

El right: 15px es donde desea que la imagen que se muestra, pero se puede colocar donde desee.

0

Acabo de agregar src = "trans.png", trans.png es solo un fondo transparente de 100x100 png de photoshop. Funcionó como un amuleto sin fronteras

Cuestiones relacionadas