有没有办法将整个页面的透视原点设置为单个点?
当文档提到子元素的透视图时,它们显然只是指直接的子元素。
因此,如果我们希望一个页面中的所有转换元素都具有相同的透视图,我们要么必须将所有这些元素都作为一个元素的直接子元素,要么对每个元素进行一些手动计算以匹配原点--原点相对于元素边界。我真的希望我错了。在我的脑子里,这应该和位置完全一样。
.main{
background:rgba(0,0,0,0.1);
height: 400px;
width: 400px;
position: relative;
perspective-origin: left bottom;
perspective: 100px;
}
.plane1{
background: red;
height: 100px;
width: 100px;
position: absolute;
top: 50px;
left: 50px;
transform: rotateX(15deg) rotateY(20deg);
}
.plane2{
background: blue;
height: 100px;
width: 100px;
position: absolute;
right: 50px;
bottom: 50px;
transform: rotateX(15deg) rotateY(20deg);
}
<div class="main">
<div>
<div>
<div class="plane1"></div>
</div>
</div>
<div>
<div>
<div class="plane2"></div>
</div>
</div>
</div>
1条答案
按热度按时间2w2cym1i1#
Temani Afif在线程中的回答是正确的--必须为透视图声明和要从属于该透视图的元素之间的每个后代设置
transform-style: preserve-3d
。由于此属性不是继承的,因此必须为元素的所有非叶后代设置此属性。