避免 Child 元素的 3D 变换
Avoid 3D transform of Child element
我有一个经过 3D 转换的 parent DIV 和一个包含标记图像的 child 元素。标记图像继承了 parent 的 属性 并且也以相同的方式进行了 3D 转换。我希望 child div 完全没有转换。
我在 child 上尝试了各种转换来对抗它从 parent 获得的转换,但无法做到。
这里是link转JSFiddle
我正在使用此转换来获得地板的 3D 外观
transform: rotateX(70deg)rotateZ(-35deg);
我需要标记在没有变换的情况下看起来,以便它看起来直接放置在变换后的 3D 平面上。提前致谢。
为了更容易使用,我建议使用外部相对定位 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>
首先,使用 transform-style: preserve-3d
允许 parent 的 3D 变换延续到 child 的:
.parent {
transform: rotateX(70deg) rotateZ(-35deg);
transform-style: preserve-3d;
}
现在,以中心底部为锚点,对child进行逆向变换
.child {
transform: rotateZ(35deg) rotateX(-70deg);
transform-origin: center bottom;
}
确保图像容器的尺寸与图像的尺寸相匹配,否则原点将不准确。
我有一个经过 3D 转换的 parent DIV 和一个包含标记图像的 child 元素。标记图像继承了 parent 的 属性 并且也以相同的方式进行了 3D 转换。我希望 child div 完全没有转换。
我在 child 上尝试了各种转换来对抗它从 parent 获得的转换,但无法做到。
这里是link转JSFiddle
我正在使用此转换来获得地板的 3D 外观
transform: rotateX(70deg)rotateZ(-35deg);
我需要标记在没有变换的情况下看起来,以便它看起来直接放置在变换后的 3D 平面上。提前致谢。
为了更容易使用,我建议使用外部相对定位 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>
首先,使用 transform-style: preserve-3d
允许 parent 的 3D 变换延续到 child 的:
.parent {
transform: rotateX(70deg) rotateZ(-35deg);
transform-style: preserve-3d;
}
现在,以中心底部为锚点,对child进行逆向变换
.child {
transform: rotateZ(35deg) rotateX(-70deg);
transform-origin: center bottom;
}
确保图像容器的尺寸与图像的尺寸相匹配,否则原点将不准确。