Si tratta di un errore noto in IE8, guarda l'ultimo bug qui:
http://nicolasgallagher.com/css-typography-experiment/demo/bugs.htmlz-index IE8 bug sui contenuti generati con: dopo
Ora, giocando un po 'con un semplice esempio ho trovato questo (test utilizzando IE8):
http://jsfiddle.net/AjCPM/
<div id="target">
<div>div</div>
</div>
#target {
position: relative;
width: 200px;
height: 200px;
z-index: 1;
}
#target>div{
background: red; width: 200px; height: 200px;
position: relative;
z-index: 0;
}
#target:before {
top: 0; left: 10%; width: 100%; height: 100%; background: cyan;
content: "after";
position: absolute;
z-index: 10;
}
IE8 rende il rettangolo cyan (la: dopo) sotto il rettangolo rosso, anche quando ha una minore z-index.
E ora la parte difficile:
cambia l'indice z per #target> div da 0 a -1 e voilá! è risolto!
Quindi ho risolto il problema ora utilizzando un sacco di z-index: -1;
Ma non mi sento al sicuro con questo.
Conosci una soluzione migliore?
Sto usando: dopo pseudoelemento perché ho un elenco di prodotti e voglio aggiungere un'immagine all'elemento quando ha la classe "venduta" per esempio.
Posso creare nel server o con JS un nuovo elemento html, ma penso di usare: after è la soluzione semantica corretta.
Il problema è che sono un po 'paranoico riguardo al: dopo pseudoelemento, ora, , pensi che sia meglio evitarlo?
La tua soluzione iniziale era proprio quello di cui avevo bisogno, grazie. –
Vuoi dire: prima o: dopo qui? Il tuo codice ne usa uno, ma la tua domanda l'altro. – Eric
Si noti che [il supporto della tecnologia di supporto CSS generato non è coerente] (http://www.456bereastreet.com/archive/201205/css_generated_content_and_screen_readers/). Il messaggio "venduto" sembra abbastanza importante da garantire che gli utenti AT vengano presentati con esso. – steveax