В дополнение к ответу @Praveen Kumar Purushothaman я бы использовал CSS-переменные, чтобы лучше контролировать это:
.parent {
opacity: var(--op, 0.5);
}
.child {
background: blue;
height: 50px;
opacity: calc(var(--oc)/var(--op, 0.5));
}
<div class="parent">
<div class="child" style="--oc:0.3">
</div>
</div>
<div style="height:50px;background:rgba(0,0,255,0.3)"></div>
<div class="parent">
<div class="child" style="--oc:0.4">
</div>
</div>
<div style="height:50px;background:rgba(0,0,255,0.4)"></div>
Вы можете заметить, что значение непрозрачности может быть только между 0
и op
, что логично, поскольку дочерний элемент не может быть более непрозрачным, чем его родительскийи потому что формула не допустит больших значений (у вас будет непрозрачность > 1
, которая недопустима).