E 'possibile mostrare un'immagine alternativa se il file sorgente originale non viene trovato? Mi piacerebbe realizzare questo solo con css e html, senza javascript (o jQuery e simili). L'idea è di mostrare un'immagine al posto del test "alt" o del default (brutto) di IE. Se non fosse possibile senza javascript, allora controllerò piuttosto img src con php con un basic if-then-else.Visualizzazione immagine alternativa
risposta
È possibile farlo utilizzando la proprietà background-image CSS dell'elemento img, vale a dire
img
{
background-image:url('default.png');
}
Tuttavia, si deve dare una larghezza o altezza per far funzionare tutto (quando l'img-src non è trovato):
img
{
background-image:url('default.png');
width:400px;
}
<object data="foobar.png" width=200 height=200>
<img src="test.png" alt="Just testing.">
</object>
Qui foobar.png
è l'immagine primaria, test.png
è l'immagine di riserva. Dalla semantica dell'elemento object
, il contenuto dell'elemento (qui l'elemento img
) deve essere visualizzato se e solo se non è possibile utilizzare i dati primari (specificati dall'attributo data
).
Sebbene i browser abbiano riscontrato errori terribili nelle implementazioni di object
nell'ultimo anno, questa semplice tecnica sembra funzionare con le versioni moderne di IE, Firefox, Chrome.
Test case: http://jsfiddle.net/VkrJ4/1/ OK in * W7Pro x64 * con Fx 12.0, IE9, Saf 5.1.5 e Op 11.64. Non testato con Chrome/Chromium. Per ora non sono stati testati con lettori di schermo e altri AT (la domanda è: "NVDA, JAWS, VoiceOver, ORCA, ecc. Leggono il testo @alt ai loro utenti?") – FelipeAls
Molto semplice e modo migliore per raggiungere questo obiettivo con poco codice
<img class="avatar" src="img/one.jpg" alt="Not Found" onerror=this.src="img/undefined.jpg">
Per me la sopra funziona perfettamente!
Un frammento davvero utile che risolve elegantemente il problema. Tuttavia, OP ha chiesto esplicitamente * "di ottenere questo risultato solo con css e html, senza javascript" * – domsson
Inoltre, non dovrebbe essere "onerror =" this.src = 'img/undefined.jpg'; "'? Inoltre, vedi questa domanda per un possibile ciclo infinito e come prevenirlo: http://stackoverflow.com/questions/8124866/how-does-one-use-the-onerror-attribute-of-an-img-element – domsson
- 1. Visualizzazione immagine jpg Qt
- 2. Aggiungi immagine alla visualizzazione avvisi
- 3. CCaptcha visualizzazione senza Yii immagine
- 4. Visualizzazione immagine GIF tramite WebView
- 5. Visualizzazione caricamento immagine post con ajax
- 6. Visualizzazione di un'icona in una casella immagine
- 7. Visualizzazione di un istogramma di dati immagine
- 8. Visualizzazione immagine da cartella/file in vb.net
- 9. non funziona con layout e visualizzazione immagine
- 10. Alternativa ai metodi di visualizzazione automatica di UIView da deprecare
- 11. cative visualizzazione due collegamenti di immagine da mysql php
- 12. Visualizzazione immagine in un DataGridViewImageColumn legame testo-campo
- 13. Altezza cella tabella di visualizzazione 100% allineamento immagine inferiore
- 14. CSS: visualizzazione di una particolare icona da un file immagine
- 15. App per Android Immagine di visualizzazione da URL
- 16. Icona immagine in visualizzazione elenco espandibile in android
- 17. Visualizzazione del pulsante di comando con solo immagine
- 18. Android: ruota l'immagine in visualizzazione di immagine di un angolo
- 19. Ottieni parte della visualizzazione mappa come immagine in iOS
- 20. Opacità incrementale, con opacità costante Visualizzazione immagine con Drawable
- 21. Mappa immagine Android. - visualizzazione di un file .svg e utilizzo come mappa immagine (zone touch)
- 22. Android WebClient, restituendo una risorsa immagine attraverso WebResourceResponse - non la visualizzazione di immagini
- 23. Internet Explorer toDataURL() alternativa?
- 24. Laravel/Lumen: Visualizza :: condivisione() alternativa?
- 25. Alternativa PostSharp
- 26. Alternativa SimpleCursorAdapter
- 27. @XmlSeeAlso alternativa
- 28. parseInt alternativa
- 29. Alternativa mongolfiera?
- 30. alternativa com.android.camera.action.CROP?
Ha funzionato durante il test? Sul mio Firefox, lo sfondo non viene mostrato quando manca l'immagine reale. Sul mio IE, viene mostrato lo sfondo, ma lo è anche il testo alt o la "×" rossa in una scatola. –
Ho già selezionato l'aswer ma ho ancora una domanda: cosa intendi con "devi dare una larghezza o altezza per far funzionare (quando l'img-src non viene trovato)"? Se il mio tag img ha già larghezza e altezza verrà utilizzato anche dall'immagine di sfondo? – rodedo
Sì, penso che dovrebbe funzionare. – emrea