Html CSS:防止在不透明度元素中求和颜色
我有3个重叠的html div,一个接一个,颜色:红色、绿色和蓝色。所有元素的不透明度均为0.5。前两个div(红色和绿色)我想求和颜色(在红色和绿色之间创建一些东西)-标准行为,这里没有更改 我的问题是如何防止只在绿色和蓝色div之间求和颜色? 如果我们能在没有额外元素的情况下做到这一点,那就太好了 html: 编辑: 我忘了: 它看起来应该是这样的(第四个元素是显示蓝色也有不透明度):Html CSS:防止在不透明度元素中求和颜色,html,css,Html,Css,我有3个重叠的html div,一个接一个,颜色:红色、绿色和蓝色。所有元素的不透明度均为0.5。前两个div(红色和绿色)我想求和颜色(在红色和绿色之间创建一些东西)-标准行为,这里没有更改 我的问题是如何防止只在绿色和蓝色div之间求和颜色? 如果我们能在没有额外元素的情况下做到这一点,那就太好了 html: 编辑: 我忘了: 它看起来应该是这样的(第四个元素是显示蓝色也有不透明度): 您可以使用z-index属性将div带到前面或后面。提高z-index的值可将其移到顶部,降低z-inde
您可以使用
z-index
属性将div带到前面或后面。提高z-index的值可将其移到顶部,降低z-index可将其移回顶部
此外,您还使用了不透明度:0.5
,因此您将在交叉点处看到背景色。您必须增加不透明度才能看到那里的确切颜色
div{
位置:绝对位置;
不透明度:0.5;
}
#d0{
顶部:60px;
高度:100px;
左:50px;
宽度:100px;
背景色:红色;
z指数:2
}
#d1{
高度:150像素;
左:130像素;
顶部:50px;
宽度:200px;
背景颜色:绿色;
}
#d2{
高度:100px;
左:300px;
顶部:80px;
宽度:120px;
背景颜色:蓝色;
}
css:
如果您想将所有div的不透明度保持为0.5。这是你的纯CSS解决方案。没有添加其他元素
这是一把小提琴
**HTML**
**CSS**
#d2{
不透明度:1;
高度:100px;
宽度:120px;
左:300px;
顶部:80px;
}
#d2:之前,
#d2:之后{
内容:“;
位置:绝对位置;
左:0;
排名:0;
高度:100px;
背景颜色:蓝色;
}
#d2:之前{
宽度:30px;
z指数:2;
不透明度:0.9999999;
背景色:#7F7FFF;
}
#d2:之后{
宽度:120px;
z指数:1;
不透明度:0.5;
}
#d4{
宽度:200px;
高度:80px;
左:400px;
顶部:90px;
背景色:红色;
}
只是添加了这个CSS而不是#d2,其余所有CSS都很好。让我知道这是否解决了您的问题
使用不透明度选择div的颜色,并在“:before”div.中使用它。您是否尝试过CSS混合模式(请参见“任意HTML元素混合模式”之后的示例)?z-index不是我的解决方案-在某些情况下,我必须具有不透明度。看起来更好,但不幸的是,它并没有解决我的问题——我希望#d2:before不覆盖不透明1,而是像以前一样覆盖0.5。我用图片编辑了这个问题,以显示我想要实现的目标。@michalv:检查这个:这应该可以解决您的问题。我还更新了上面答案中的小提琴链接。
<div id="d0"></div>
<div id="d1"></div>
<div id="d2"></div>
div {
position: absolute;
opacity: 0.5;
}
#d0 {
top: 60px;
height: 100px;
left: 50px;
width: 100px;
background-color: red;
}
#d1 {
height: 150px;
left: 130px;
top: 50px;
width: 200px;
background-color: green;
}
#d2 {
height: 100px;
left: 300px;
top: 80px;
width: 120px;
background-color: blue;
}
**HTML**
<div id="d0"></div>
<div id="d1"></div>
<div id="d2"></div>
<div id="d4"></div>
**CSS**
#d2 {
opacity: 1;
height: 100px;
width: 120px;
left: 300px;
top: 80px;
}
#d2:before,
#d2:after{
content: "";
position :absolute;
left: 0;
top: 0;
height: 100px;
background-color: blue;
}
#d2:before{
width: 30px;
z-index: 2;
opacity: 0.99999999;
background-color: #7F7FFF;
}
#d2:after{
width: 120px;
z-index: 1;
opacity: 0.5;
}
#d4 {
width: 200px;
height: 80px;
left: 400px;
top: 90px;
background-color: red;
}