Ho appena si avvicinò con questo, sembra funzionare in tutti i browser moderni, ho appena provato quel momento in poi (IE8/compatibilità, Chrome, Safari, Moz)
HTML
<img id="my_image" alt="my text" src="images/small_transparent.gif" />
CSS
#my_image{
background-image:url('images/my_image.png');
width:100px;
height:100px;}
Pro:
- testo dell'immagine alt è best-practice per l'accessibilità/seo
- senza markup HTML in più, e il CSS è piuttosto minimale troppo
- aggira il css on/immagini off problema in cui le tecniche di "text-indent" ancora nascondono testo utenti con larghezza di banda ridotta
Il più grande svantaggio che posso pensare è il css off/immagini sulla situazione, perché invierai solo una gif trasparente.
Potrebbe essere possibile scrivere un piccolo javascript per risolvere questo problema, sostituendo tutte le fonti di immagini con le loro proprietà css background-image. Ma ciò funzionerebbe solo se i browser aggiungessero ancora proprietà CSS agli elementi e quindi li ignorassero. Non so se questo è il caso o no, dovrò provarlo. Dovresti anche sviluppare un test basato su JavaScript per vedere se il css viene applicato alla pagina (forse controlla la posizione di qualche elemento di test).
btw, mi piacerebbe sapere, chi usa le immagini senza fogli di stile? una specie di cellulare o qualcosa del genere?
edit:
Sulla base di commento qui sotto ... gli stili inline hrm ... forse dovrei solo fare una funzione PHP aiuto come <?php echo css_image('image_id','my text','image_url');?>
per generare un po 'di codice come questo:
HTML
<div id="image_id" style="background-image:url('image_url')" class="image">
<img src="image_url" class="alt_text" alt="my text" />
<p>my text</p>
</div><!--/#my_image-->
poi basta allegare qualche CSS nel foglio di stile
#image_id{width:*image width*;height:*image height*}
.alt_text{position:absolute;top:0px;left:0px}
.image{display:block;background-position:left top}
.image p{position:absolute;left:-9999em}
è una tecnica più vecchia che sto usando, non sono sicuro di dove l'ho trovata. Funziona con i CSS su/immagini disattivate, CSS off/immagini on, CSS on/images on.
Se un utente con disattivazione/disattivazione delle immagini CSS visita, vedrà un testo raddoppiato. Se uno spider di un motore di ricerca visita, vedrà alt text e testo normale, un ragno intelligente potrebbe facilmente identificarlo per quello che è, una innocente tecnica di sostituzione dell'immagine.
Quindi, questa tecnica è la peggiore per gli screen reader, poiché il testo alt è letto, ma questi utenti dovrebbero essere in grado di saltare al paragrafo successivo, motivo per cui ho bloccato <p></p>
in "my text".
Tutti gli altri con CSS e immagini disattivati sono una specie di bot, giusto?
Che cosa è SEO poco amichevole nell'usare gli sprite? Stai posizionando gli attributi 'title' nel tag anchor? – beggs
Niente è. Ho un problema con la sostituzione dell'immagine. –