例如,有 2 个 div 的绝对定位,可以通过将第一个 div 的 z-index 设置为高于第二个的 z-index 将第一个 div 放在第二个上。我们可以使用 translateZ() 或 translate3d 实现这种行为吗?
问问题
10955 次
2 回答
22
三年后的现在答案是,你可以。您需要transform-style: preserve-3d;
在父级上使用,但有可能.
.container {
transform-style: preserve-3d;
}
.test1 {
width: 500px;
height: 500px;
background: red;
transform: translate3d(0, 0, 1px);
}
.test2 {
width: 500px;
height: 500px;
background: green;
left: 250px;
top: 250px;
position: absolute;
transform: translate3d(0, 0, 0);
}
<div class="container">
<div class="test1">
test
</div>
<div class="test2">
test #2
</div>
</div>
于 2016-04-07T11:28:38.167 回答
4
简短的回答:不。查看截至发布时有效的演示
更长的答案:不应该这样,但有时,例如当一个元素具有变换而其兄弟元素没有变换时,某些浏览器不能很好地处理这种情况,导致 z-index 被忽略。
但是,通常这是因为transform
应用了 本身,而不是因为translateZ
. 在这种情况下的解决方案是提供所有相关元素transform: translate3d(0px, 0px, 0px)
或类似的东西,这使得浏览器更仔细地呈现元素
于 2014-01-24T18:45:51.767 回答