A opacidade do elemento filho é herdada do elemento pai.
Mas podemos usar a propriedade css position para realizar nossa conquista.
A div do contêiner de texto pode ser colocada fora da div pai, mas com o posicionamento absoluto projetando o efeito desejado.
Requisito ideal ------------------ >>>>>>>>>>>>>
HTML
<div class="container">
<div class="bar">
<div class="text">The text opacity is inherited from the parent div </div>
</div>
</div>
CSS
.container{
position:relative;
}
.bar{
opacity:0.2;
background-color:#000;
z-index:3;
position:absolute;
top:0;
left:0;
}
.text{
color:#fff;
}
Resultado:--
o texto não está visível porque herdou a opacidade da div pai.
Solução ------------------- >>>>>>
HTML
<div class="container">
<div class="text">Opacity is not inherited from parent div "bar"</div>
<div class="bar"></div>
</div>
CSS
.container{
position:relative;
}
.bar{
opacity:0.2;
background-color:#000;
z-index:3;
position:absolute;
top:0;
left:0;
}
.text{
color:#fff;
z-index:3;
position:absolute;
top:0;
left:0;
}
Resultado :
o texto é visível com a mesma cor do plano de fundo porque a div não está na div transparente
opacity
é um pouco comodisplay: none
neste sentido.