Vous ne pouvez pas. Le CSS d'aujourd'hui ne le permet tout simplement pas.
Le modèle de rendu logique est celui-ci :
Si l'objet est un élément de conteneur, l'effet est le même que si le contenu de l'élément de conteneur était mélangé à l'arrière-plan actuel à l'aide d'un masque où la valeur de chaque pixel du masque est .
Référence : transparence css
La solution consiste à utiliser une composition d'éléments différente, en utilisant généralement des positions fixes ou calculées pour ce qui est aujourd'hui défini comme un enfant : il peut apparaître logiquement et visuellement pour l'utilisateur comme un enfant, mais l'élément ne doit pas être réellement un enfant dans votre code.
Une solution utilisant le css : violon
.parent {
width:500px;
height:200px;
background-image:url('http://canop.org/blog/wp-content/uploads/2011/11/cropped-bandeau-cr%C3%AAte-011.jpg');
opacity: 0.2;
}
.child {
position: fixed;
top:0;
}
Une autre solution avec javascript : violon