5

我可以transform: rotateY用一个 div 来对抗transform: rotateY他的父母吗?

例如:
如果我有一个父 div rotateY(-45deg),他所有的孩子都将是 -45 度。
为什么我不能添加rotateY(45deg)到孩子,让它看起来像没有旋转影响它?

演示:http: //jsfiddle.net/eBT4A/

4

2 回答 2

0

您可以将rotateY(45deg)添加到父div具有rotateY(-45deg)的孩子,使其看起来只有当您将相同的枢轴点设置为这两个旋转时才不会影响它,

在您的演示示例中,您没有应用相同的枢轴点,

尝试这个...

<html>
    <head>
        <style type="text/css">
            body {
                -webkit-perspective: 500;
            }
            #content {
                position:absolute;
                top: 0px;
                left: 0px;
                width: 300px; 
                height: 500px;
                background: #000;
                -webkit-transform-origin: 0px 0px;
                -webkit-transform: rotate(45deg);
                -moz-transform-origin: 0px 0px;
                -moz-transform: rotate(45deg);
            }
            #element {
                position:absolute;
                top: 0px;
                left: 0px;
                width: 50px; 
                height: 50px;
                background: #f00;
                -webkit-transform-origin: 0px 0px;
                -webkit-transform: rotate(-45deg);
                -moz-transform-origin: 0px 0px;
                -moz-transform: rotate(-45deg);
            }
        </style>
    </head>
    <body>
        <div id="content">
            <div id="element"></div>
        </div>
    </body>
</html>
于 2013-02-02T09:06:23.143 回答
0

您需要将 preserve-3d 添加到父级:

body {
    -webkit-perspective: 500;
}
#content {
    position:fixed;
    top: 20px;
    left: 0;
    width: 300px; 
    height: 500px;
    background: #000;
    -webkit-transform-origin: 0 0;
    -webkit-transform: rotateY(45deg);
    -webkit-transform-style: preserve-3d;
}
#element {
    position:fixed;
    top: 20px;
    left: 50%;
    width: 50px; 
    height: 50px;
    background: #f00;
    -webkit-transform-origin: 0 0;
    -webkit-transform: rotateY(-45deg);
}

更新的小提琴

据我所知,这在 IE 中不起作用。

于 2013-08-27T15:23:42.390 回答