我有3个只包含背景色的div,我想做的是类似于谷歌chrome的标志。
这只是代码的一部分,还有更多的内容在上面,但这基本上是页面的背景。
现在,绿色在红色之上,这很好。但是黄色在红色和绿色之下,它应该在绿色之上,红色之下。有点像纠缠的div。
有没有办法把黄色的div放在绿色的上面,红色的div下面,让它看起来更像谷歌的chrome标志?
这是我能解释的最好的了,哈哈,我知道理解我在做什么是很复杂的。
Here's the code(单击以获取代码)
.container {
position: relative;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.red {
position: absolute;
left: 30%;
width: 100%;
height: 150vh;
transform: rotate(58deg);
background-color: #b71724;
opacity: 1;
transition: all 0.7s ease-in;
}
.green {
position: absolute;
right: 20%;
width: 110%;
height: 150vh;
transform: rotate(-58deg);
background-color: #2c4b2b;
opacity: 1;
transition: all 0.7s ease-in;
}
.yellow {
position: absolute;
top: 58%;
width: 100%;
height: 100vh;
background-color: #d1aa3b;
z-index: -1;
opacity: 1;
transition: all 0.7s ease-in;
}
<div class="container">
<div class="bg-div red"></div>
<div class="bg-div green"></div>
<div class="bg-div yellow"></div>
</div>
5条答案
按热度按时间dhxwm5r41#
不,这对于纸之类的东西是可能的,但z轴更像是一堆盘子,就像是把盘子堆起来,让下面的盘子也在上面,这是不可能的。
你可以尝试“欺骗”一个解决方案的唯一方法是复制底部元素(黄色),把它一直提升到顶部,然后用某种方法屏蔽它,这样它看起来就像是在红色下面和绿色上面一样。我不确定你在实际应用程序中想做什么,但是我建议你只用一个图像来达到这个效果。
但是没有办法让这三个div按照你描述的方式工作。
icnyk63a2#
指定不同的z轴:
如果您为两个div设置相同的z索引,那么它们在HTML代码中的位置将决定它们的位置(最后在前面的主体中)
xggvc2p63#
您可以像在黄色上使用z轴那样在红色和绿色上使用z轴,将黄色的z轴更改为0,将绿色的z轴定义为-1,将红色的z轴定义为1。
u4dcyp6a4#
解决这个问题的一个方法是使用一个额外的div来关闭最后一个div的位置,我给你看了一个示例代码:
0wi1tuuw5#
是的,绝对有一种方法可以用纯CSS做到这一点。
将DIV放入具有高
perspective
值的容器中(以使透视缩短最大化),并相应地在其y轴上旋转内部DIV;下面是一个快速演示: