Я изо всех сил пытался понять взаимодействие CSS в проекте, над которым я работал. Вот кодовый блок, воссоздающий его и CSS, который я использовал.
Codepen
.container
/*background is set to emulate the real use case*/
background red
height 400px
width 600px
position relative
display flex
justify-content center
align-items center
opacity 0.9
.blurred
background-image url(https://ak0.picdn.net/shutterstock/videos/2696180/thumb/1.jpg)
height 100%
width 100%
position absolute
filter blur(7px)
z-index -1
.text
font-size 35px
text-transform uppercase
color brown
/*this div is for comparison.
at 0.9 opacity the white background under it is
not visible yet the image under .container is clearly
visible at 0.9 opacity */
.comparison
height 400px
width 600px
background red
opacity 0.9
Идея в том, что я хочу, чтобы к нему было применено изображение с размытостью, а также текст поверх него, который не был бы размытым. .Container технически не нуждается в наборе цвета фона, но ради воссоздания проблемы именно так, как я с ней столкнулся, я установил его цвет фона на красный.
Так что, насколько я понимаю, уменьшение непрозрачности на .container делает .container и всех его дочерних элементов более прозрачными. То есть, чем ниже, тем легче увидеть белый фон под всеми элементами. Я не понимаю, почему прозрачность также делает .container полностью прозрачным. Я могу четко видеть фоновое изображение через него. Я ожидал, что контейнер будет заполнен красным цветом и едва показывает изображение внутри. Вместо этого .container не имеет цвета заливки, и я четко вижу изображение.
Я сделал еще один div для сравнения. Это просто div с непрозрачностью 0,9 и больше ничего. Он не теряет свой цвет фона, как .container.
Надеюсь, я достаточно подробно объяснил свой вопрос. Я уже несколько дней пытаюсь обернуть это вокруг головы!