我按照本教程在 3D 中进行了一些转换。
在这里你可以找到一个小提琴。
为什么只显示红色div,而绿色div 没有?
.HTML:
<div id="scene3D">
<div id="flip">
<div>Red Text</div>
<div>Green Text</div>
</div>
</div>
.CSS:
#scene3D{
width:300px;
height:300px;
margin: auto;
-webkit-perspective:500px;
perspective:500px;
}
#flip{
width:300px;
height:300px;
-webkit-transform: rotateX(0deg);
transform: rotateX(0deg);
transition:all 1s ease;
}
#scene3D:hover #flip{
-webkit-transform: rotateX(180deg);
transform: rotateX(180deg);
}
#flip div{
position:absolute;
width:300px;
height:300px;
background:red;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
#flip div:last-child{
background:green;
-webkit-transform: rotateX(180deg);
transform: rotateX(180deg);
}
有一个属性是你没有设置的,这是必需的:转换样式:保留-3d。
#flip{
width:300px;
height:300px;
-webkit-transform: rotateX(0deg);
transform: rotateX(0deg);
transition:all 1s ease;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
背面可见性:隐藏使元素在反转时不可见。
但是,如果您不设置 preserve-3d,则仅适用于元素本身的转换。
这就是为什么绿色元素不显示,但红色元素一直显示(它不应该!
小提琴
您隐藏了用于显示绿色div backface-visibility: visible;
backface-visibility: hidden;
,您必须将其定义为可见。
小提琴 : http://jsfiddle.net/HarishBoke/nu69Y/
希望对您有所帮助!