Я бы выбрал дополнительную обертку, где вы установите z-index
, чтобы создать контекст разбивки, таким образом, элемент больше не будет смешиваться с синим элементом:
.wrapper {
background-color: blue;
height: 100vh;
width: 100%;
}
.wrapper > div {
position:absolute;
height: 100vh;
left:0;
right:0;
z-index:0;
top:0;
}
.pink {
background: hotpink;
height: 80%;
width: 50%;
position: absolute;
z-index: 1;
top: 0;
left: 10%;
mix-blend-mode: multiply;
}
.green {
background: limegreen;
height: 80%;
width: 50%;
position: absolute;
z-index: 1;
top: 0;
right: 10%;
mix-blend-mode: multiply;
}
<div class="wrapper">
<div>
<div class="pink"></div>
<div class="green"></div>
</div>
</div>
Все в CSS, которое создает стековый контекст , должно рассматриваться как «изолированная» группа .Сами элементы HTML не должны создавать группы.
Элемент, к которому применено смешивание, должен смешиваться со всем базовым содержимым контекста стека [CSS21], к которому принадлежит этот элемент. ref
Таким образом, основной трюк заключается в том, чтобы элементы находились в контексте стека, где синий элемент не принадлежит.Если элемент-обертка является их непосредственным родительским элементом, не составит труда сделать их в другом контексте стека, поэтому вам не понадобится дополнительная обертка.
Изоляция вам не поможет, потому что она простосделайте обертку, создающую контекст стека, чтобы она не изолировала обертку от дочернего элемента, а от всех элементов снаружи.если вы примените его к дополнительной оболочке, он будет работать точно так же, как установка z-index
или любого другого свойства, которое создает контекст стека.
.wrapper {
background-color: blue;
height: 100vh;
width: 100%;
}
.wrapper > div {
position:absolute;
height: 100vh;
left:0;
right:0;
isolation:isolate;
top:0;
}
.pink {
background: hotpink;
height: 80%;
width: 50%;
position: absolute;
z-index: 1;
top: 0;
left: 10%;
mix-blend-mode: multiply;
}
.green {
background: limegreen;
height: 80%;
width: 50%;
position: absolute;
z-index: 1;
top: 0;
right: 10%;
mix-blend-mode: multiply;
}
<div class="wrapper">
<div>
<div class="pink"></div>
<div class="green"></div>
</div>
</div>