CSS3 -webkit-transform:translateZ(xpx)不起作用

ben*_*ins 2 safari webkit transform css3

对不起,如果这看起来很基本,但我在网上搜索,找不到另一个答案(这让我觉得我做的事情很愚蠢).

我有一个父母和一个孩子div.我正在尝试将CS​​S3 translateZ应用于孩子,但似乎没有发生任何事情.

translateX和translateY工作,以及旋转,但不是translateZ.我疯了吗?

这是一个小提琴:http://jsfiddle.net/Sb55D/1/

<div id="main">
    <div id="child">
        Lorem
    </div>
</div>

#main {
   display: block;
   position: absolute;
   width: 400px; height: 400px;
   border: thin solid red;
   top: 10px;
   left: 10px;
   -webkit-transform-style: preserve-3d;
}

#child {
    display: block;
    position: absolute;
    top: 50%; left: 50%;
    width: 300px;
    height: 300px;
    border: thin solid green;
    -webkit-transform: translate(-50%, -50%) translateZ(-400px);
    -webkit-transform-style: preserve-3d;
}
Run Code Online (Sandbox Code Playgroud)

brb*_*ing 20

您需要应用于perspective父元素才能使translateZ正常工作...尝试添加以下内容:

#main {
   display: block;
   position: absolute;
   width: 400px; height: 400px;
   border: thin solid red;
   top: 10px;
   left: 10px;
   /*-webkit-transform-style: preserve-3d; not needed on parent element */
   -webkit-perspective: 1000;
}
Run Code Online (Sandbox Code Playgroud)

DEMO

  • 为了任何其他脱脂读者的利益:关键是将`perspective`应用于翻译元素的*parent*. (3认同)
  • 通过向上和向下箭头单击该复选标记以标记为已解决:) (2认同)