我认为您不能根据 div 大小设置 translateZ 。但是,您可以使用另一个 div 来获得该效果;这个div当然可以基于父级的div大小。
html 将包含以下内容:
<div id="base">
<div class="raiser">raiser
<div class="face1">FACE UP
<div class="face2">side</div></div></div>
</div>
我的想法是在基础 div 上,我将提升器 div 设置为 90 度,宽度为父级的 50%。这样,在加注者的右侧,我们将获得正确的 Z 位置。
CSS如下:
div {
-webkit-transform-style: preserve-3d;
}
#base {
margin-left: 10%;
width: 40%;
height: 50%;
font-size: 40px;
-webkit-transition: 10s;
background-color: rgba(128, 128, 128, 0.21);
}
.rotated {
-webkit-transform: rotateY(90deg);
}
.raiser {
-webkit-transform: rotateY(85deg);
-webkit-transform-origin-x: 0%;
position: absolute;
width: 50%;
}
.face1 {
background-color: lightblue;
-webkit-transform: rotateY(-90deg);
-webkit-transform-origin-x: 0%;
position: absolute;
width: 200%;
left: 100%;
top: 0px;
}
.face2 {
background-color: lightgreen;
-webkit-transform: rotateY(-90deg);
-webkit-transform-origin-x: 0%;
left: 100%;
position: absolute;
top: 0px;
width: 100%;
}
在演示中,您将看到有一个“倾斜”复选框。如果选中此项,所有布局将沿 X 轴旋转,以便您可以看到空间布局。
此外,加注器有一个文本,并且旋转了 85 度而不是 90 度,因此更容易看到正在发生的事情。最终代码将角度设置为 90,并且没有文本。