是否可以创建一个元素,通过x个“后面”的层来创建透明度?
例如:我有z-index为1,2,3,4的图层,其中1是红色。然后我创建了第“5”层,我想切穿2,3,4层的颜色,并看到红色。这可能吗?
是否可以创建一个元素,通过x个“后面”的层来创建透明度?
例如:我有z-index为1,2,3,4的图层,其中1是红色。然后我创建了第“5”层,我想切穿2,3,4层的颜色,并看到红色。这可能吗?
mix-blend-mode
和/或background-blend-mode
(如果您有背景图像),这是目前推荐的合成和混合 Level 1。div
显示从最底层div
渗透出来的红色。
示例代码:
.red { background-color: red; }
.blue { background-color: blue; }
.green { background-color: green; }
.yellow { background-color: yellow; }
div {
width: 120px; height: 120px;
position: absolute;
top: 16px; left: 16px;
}
div:nth-of-type(2) { top: 32px; left: 32px; mix-blend-mode: difference; }
div:nth-of-type(3) { top: 48px; left: 48px; mix-blend-mode: overlay;}
div:nth-of-type(4) { top: 64px; left: 64px; mix-blend-mode: multiply; }
<div class="red">1</div>
<div class="blue">2</div>
<div class="green">3</div>
<div class="yellow">4</div>
让我们试一试:
div {
width: 500px;
height: 300px;
border: 50px solid transparent;
}
.a1 {
background-color: rgba(255, 0, 0, 1);
}
.a2 {
background-color: rgba(255, 165, 0, 0.5);
}
.a3 {
background-color: rgba(0, 128, 0, 0.5);
}
.a4 {
background-color: rgba(0, 0, 255, 0.5);
}
.a5 {
background-color: rgba(238, 130, 238, 0.5);
}
<div class="a1">
<div class="a2">
<div class="a3">
<div class="a4">
<div class="a5">
</div>
</div>
</div>
</div>
</div>
您可以在CSS中指定颜色和透明度,如果没有任何透明度的组合达到100%,则应该能够获得颜色的混合。
这将看起来像:
.elclass{
background-color:#f00;
opacity:.2; //20% opacity;
}
.elclass{
background-color:rgba(255,0,0,.2);
}
RGBA颜色并不是100%浏览器安全的。
z-index
。 - Tushar