Lo opacity
stile influenza l'intero elemento e tutto ciò che contiene. La risposta corretta a questa domanda è utilizzare invece un colore di sfondo rgba.
Il CSS è abbastanza semplice:
.myelement {
background: rgba(200, 54, 54, 0.5);
}
... dove i primi tre numeri sono i valori rosso, verde e blu per il colore di sfondo e il quarto è il valore del canale "alfa", che funziona allo stesso modo del opacity
valore.
Vedi questa pagina per maggiori informazioni: http://css-tricks.com/rgba-browser-support/
Lo svantaggio è che questo non funziona in IE8 o inferiore. La pagina che ho collegato sopra elenca anche alcuni altri browser in cui non funziona, ma ormai sono tutti molto vecchi; tutti i browser attualmente in uso eccetto IE6 / 7/8 funzioneranno con i colori rgba.
La buona notizia è che puoi forzare IE a lavorare anche con questo, usando un hack chiamato CSS3Pie . CSS3Pie aggiunge una serie di moderne funzionalità CSS3 alle versioni precedenti di IE, inclusi i colori di sfondo rgba.
Per usare CSS3Pie per gli sfondi, devi aggiungere una -pie-background
dichiarazione specifica al tuo CSS, così come lo behavior
stile PIE , in modo che il tuo foglio di stile finisca per assomigliare a questo:
.myelement {
background: rgba(200, 54, 54, 0.5);
-pie-background: rgba(200, 54, 54, 0.5);
behavior: url(PIE.htc);
}
Spero che aiuti.
[MODIFICARE]
Per quel che vale, come altri hanno già detto, puoi usare lo filter
stile di IE , con la gradient
parola chiave. La soluzione CSS3Pie utilizza effettivamente la stessa tecnica dietro le quinte, ma elimina la necessità di scherzare direttamente con i filtri di IE, quindi i tuoi fogli di stile sono molto più puliti. (aggiunge anche un sacco di altre belle funzionalità, ma non è rilevante per questa discussione)