由于一直在使用框架和ui,基础的东西都忘记
了所以最近复习了一下基础的东西,但是发现了一个非常奇怪的bug
在最近做的一个小demo中发现了一个问题
图中#square添加了一个opacity,只要他小于1就会出现如图的问题
.top的transform:translateZ 失效;
而如果我将#square的opacity属性设置为1或注释掉则没有问题
完整代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- <link rel="stylesheet" href="./test.css"> -->
<!-- <script src="./test.js"></script> -->
<style>
#box{
width: 100vw;
height: 100vh;
perspective: 1000px;
}
*{
padding: 0;
margin: 0;
}
#square{
margin: 0 auto;
height: 20vw;
width: 20vw;
background: pink;
position: relative;
top:50%;
transform: translateY(-50%) rotateX(-15deg) rotateY(80deg);
opacity: 0.3;
-webkit-transform-style:preserve-3d;
transform-style: preserve-3d ;
}
#square div{
width: 100%;
height: 100%;
position: absolute;
}
.top{
background: #616161;
/* opacity: 0.3; */
transform:translateZ(-125px);
}
</style>
</head>
<body>
<div id="box">
<div id="square">
<div class="top">top</div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
</body>
</html>
opacity会让transform:translateZ()失效