我有一个3D转换的父DIV和一个包含标记图像的子元素。标记图像继承父项的属性,并以相同的方式进行3D变换。我希望孩子div根本没有转变。
我尝试对孩子进行各种转换,以对抗从父母那里得到的转变,但却无法做到。
这是JS Fiddle的链接
我正在使用此转换来获得3D地板效果
transform: rotateX(70deg)rotateZ(-35deg);
我需要标记在没有变换的情况下查看,因此它看起来直接放在变换的3D平面上。提前谢谢。
答案 0 :(得分:3)
首先,使用transform-style: preserve-3d
允许父母的3D转换转移到孩子的身上:
.parent {
transform: rotateX(70deg) rotateZ(-35deg);
transform-style: preserve-3d;
}
现在,使用中心底部作为锚点对孩子进行反向变换。
.child {
transform: rotateZ(35deg) rotateX(-70deg);
transform-origin: center bottom;
}
确保图像容器的尺寸与图像的尺寸匹配,否则原点将不准确。
答案 1 :(得分:0)
为了更容易使用,我建议使用外部相对定位div并将2个内部div与位置绝对重叠。
.cont {
position:relative;
}
.parent {
position: absolute;
background-color: yellow;
width: 200px;
height: 150px;
top:0;
left:0;
transform: rotateX(70deg)rotateZ(-35deg);
margin: 70px;
}
.child {
position: absolute;
top: 90px;
left: 100px;
width: 70px;
height: 50px;
}

<div class="cont">
<div class="parent">
</div>
<div class="child">
<img style="width:60px;height:60px;" src="https://cdn0.iconfinder.com/data/icons/android-icons/512/location-01-512.png"/>
</div>
</div>
&#13;