Quello che hai incontrato è proprio il limite della proprietà "Opacity", viene trasmessa in maniera ereditaria a tutti gli elementi figli!!!
Devi usare la nuova proprietà RGBA dei CSS3. In pratica se prima adesso scrivi qualcosa tipo
codice:
BODY
{
background: rgb(255,0,0);
opacity:0.9;
}
per avere uno sfondo rosso ma opaco al 90%, devi invece scrivere:
codice:
BODY
{
background: rgba (255,0,0,0.9);
}
Dove la "a" di rgba indica il canale alpha, con lo stesso significato che ha nei programmi di grafica. Questa proprietà non viene trasmessa ai figli ma non è compatibile con i browser più vecchi, specialmente IE....