【发布时间】:2016-11-08 05:44:03
【问题描述】:
我试图了解 CSS 的“3d”世界到底发生了什么。 我做了一个简单的example
尤其是最让我烦恼的代码是:
.back {
background-color: tomato;
transform: rotateY(180deg);
z-index: 1;
}
我不清楚的是为什么当你将鼠标悬停在 .inner 上时,它的背景颜色(金色)不可见?如果从 .back 中删除 transform 属性,或者将 rotateY 设置为 0deg,则 .inner 的金色背景颜色清晰可见。 为什么.back的transform属性会改变堆叠顺序?
从逻辑上讲,子项(.front 和 .back)应该出现在其父项(.inner)的前面。
另外,我想知道当你将 transform-style 设置为 flat 时会发生什么?这是否会使父级及其所有子级折叠成单个“单元”,其中具有最高堆叠顺序的元素具有优先级/可见性?
【问题讨论】:
-
这个演示更好地解释了它,codepen.io/anon/pen/QErrNm。这次我使用了 translateZ 而不是 z-index。当您将鼠标悬停在 .inner 上时,为什么 .back 会出现在他的父母面前。
-
你可能期待这个codepen.io/anon/pen/kXopkW
-
是的,这就是我想要实现的。您能否解释一下为什么在rotateY 之后移动 translateZ 时它的行为会有所不同?另外如何修改它以使用 z-index 而不是 translateZ?谢谢
标签: css z-index css-transforms