我有两个div元素:一个父元素,被旋转了;一个子元素,我需要它不受父元素旋转的影响。
为了达到这个目的,我尝试将子元素以相反的方向旋转。在某些情况下,这是可行的。例如,如果我像这样旋转元素...
请注意,上面的div都被正确地呈现出来了,但是下面的子div仍然变形。
我错过了什么?
为了达到这个目的,我尝试将子元素以相反的方向旋转。在某些情况下,这是可行的。例如,如果我像这样旋转元素...
.parent {
transform: rotate(30deg);
}
.child {
transform: rotate(-30deg);
}
如果我使用 rotateX 旋转元素,子元素将会直接出现并且不会被扭曲。...
.parent {
transform: rotateX(30deg);
}
.child {
transform: rotateX(-30deg);
}
...子元素仍然看起来有些失真。
实际代码同时使用rotateX和rotateZ,以使父元素呈现等轴测效果。目前它的样子是这样的:
.happy_parent {
width: 100px;
height: 100px;
background-color: green;
transform: rotate(30deg);
}
.happy_child {
width: 50px;
height: 50px;
background-color: yellow;
transform: rotate(-30deg);
}
.sad_parent {
width: 100px;
height: 100px;
background-color: green;
transform: rotateX(-60deg) rotateZ(45deg);
}
.sad_child {
width: 50px;
height: 50px;
background-color: yellow;
transform: rotateX(60deg) rotateZ(45deg);
}
<div class="happy_parent">
<div class="happy_child"></div>
</div>
<div class="sad_parent">
<div class="sad_child"></div>
</div>
我错过了什么?
rotation
的顺序,同时加上-ve
deg
。就像父元素先旋转X
再旋转Z
一样,子元素需要先旋转Z
再旋转X
。你可以尝试移除transform-style: preserve-3d
看看效果。 - Rana