2011-01-20 15 views
20

Chrome e Safari stanno visualizzando un bordo attorno all'immagine, ma non ne voglio uno. Non ci sono confini in Mozilla. Ho esaminato il CSS e l'HTML e non riesco a trovare nulla che lo risolva.bordo di visualizzazione cromo/safari intorno all'immagine

Ecco il codice:

<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; 

} 

Siamo spiacenti, ho copiato qualche vecchio codice prima. Ecco il codice che mi sta dando problemi

Grazie in anticipo

+0

In risposta alla modifica del codice (che rende entrambe le risposte fornite finora irrilevanti): questo bordo è "punteggiato"? – thirtydot

+0

no, solo un bordo sottile e solido. Non è nero però, è grigio chiaro –

+1

Se il tuo codice è come dici tu (completo di 'border: none;'), allora non riesco a vedere quale potrebbe essere il problema. Sei sicuro di non utilizzare una versione vecchia della cache? – thirtydot

risposta

41

Ora non so se si tratta di un bug con Chrome o meno, ma il bordo grigio appare quando non riesce a trovare l'immagine, l'URL dell'immagine è rotto o come nel tuo caso il src non è lì. Se si fornisce all'immagine un URL corretto e il browser lo trova, il bordo scompare. Se l'immagine non deve avere un src allora sarà necessario rimuovere l'altezza e la larghezza.

+1

Sono con un problema simile, sono usando uno sprite con posizione di sfondo e immagine di sfondo. Se rimuovo la larghezza e l'altezza, l'immagine svanisce. –

+1

@MichelAyres per uno sprite dovrai dargli un'altezza e una larghezza e dovrai guardare il codice per capire cosa sta succedendo. Consiglierei di porre la tua domanda e di pubblicare il codice difettoso in modo che possiamo darti più aiuto in questo. – sarcastyx

+1

La soluzione di rparree è molto elegante se davvero non vuoi che abbia un src con la tua immagine. L'altra opzione è usare un elemento div invece di src e quindi impostare il "display" CSS su "blocco in linea" – 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

Spiacente, ho copiato un vecchio codice prima. Ecco il codice che mi dà problemi –

0

All'interno img.related_photo, è necessario modificare border: solid thin #DFDFDF; a border: 0.

+1

Mentre 'border: 0' funziona tecnicamente, il modo corretto per farlo è con' border: none' perché 'border: 0' implica che c'è ancora un bordo, ma è solo larghezza capita di essere 0 quindi non lo vedi. – Jared

+2

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

12

sarcastyx ha ragione, ma se vuoi un workarround puoi impostare la larghezza e l'altezza su 0 e un padding per fare spazio alla tua immagine.

Se si desidera un icona del 36x36, è possibile impostare la larghezza e l'altezza a 0 e Pading: 18px

+0

Grazie; questo mi ha aiutato un sacco, Gonzalo! – SoreThumb

3

Questo può accadere quando l'immagine è piantato dinamicamente da CSS (ad esempio http://webcodertools.com/imagetobase64converter) al fine di evitare HTTP in più richieste. In questo caso non vogliamo avere un'immagine predefinita a causa di problemi di prestazioni. L'ho risolto passando da un tag img a un tag div.

+0

http://stackoverflow.com/a/26429285/221683 ha funzionato per me. –

-1

In sintesi le risposte date già: le opzioni per rimuovere il bordo grigio da un img:not([src]), ma ancora visualizzare un'immagine utilizzando background-image in Chrome/Safari sono:

  • Utilizzare un tag diverso che doesn' Ho questo comportamento. (Grazie a @Druvision)
    Ad esempio: div o span.
    Faccia triste: non è altrettanto semantica.

  • Utilizzare padding per definire le dimensioni. (Grazie a @Gonzalo)
    Ad esempio padding: 16px 10px 1px; sostituisce width:20px; height:17px;
    Faccia triste: le dimensioni e le intenzioni non sono così ovvie nel CSS, specialmente se non è un quadrato uniforme come l'esempio di @ Gonalo.

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

Questo [rimuove il bordo] (http://jsfiddle.net/sdhmpjy7/) in Chrome e Safari. Una piccola spiegazione sarebbe utile, comunque. – showdev

+2

Sebbene contenuto: ''; nasconde i bordi quando l'immagine non viene caricata ma quando l'immagine viene caricata, nasconde anche l'immagine! Quindi, questa non è una soluzione. –

+0

@Andrii Katsiubka questo è un trucco abbastanza impressionante ma non capisco perché il contenuto lo faccia ... Comunque è meglio applicare questa proprietà solo per l'immagine di attributo src come usando un selettore css come img: not ([src]) {content: '' } – BurebistaRuler

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

Alcune descrizioni di solito aiutano. –

5

so che è una vecchia questione. Ma un'altra soluzione è quella di impostare il src ad un pixel trasparente 1x1

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

Questo funziona per me.

0

ho fissato la questione con:

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

Il right: 15px è dove si desidera che l'immagine da visualizzare, ma è possibile posizionarlo dove si desidera.

0

Ho appena aggiunto src = "trans.png", trans.png è solo un png di sfondo trasparente 100x100 da photoshop. Ha funzionato come un fascino senza frontiere

Problemi correlati