当它在 Chrome 中呈现时,请查看以下代码。它将显示两张幻灯片,一个面向您的红色正方形和一个朝上的蓝色正方形:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<!-- disable zooming -->
<meta name="viewport" content="initial-scale=1.0, user-scalable=0" />
<style media="screen">
.container {
width: 200px;
height: 200px;
position: relative;
margin: 0 auto 40px;
border: 1px solid #CCC;
-webkit-perspective: 1000px;
}
#cube {
width: 100%;
height: 100%;
position: absolute;
-webkit-transform-style: preserve-3d;
-webkit-transition: -webkit-transform 1s;
}
#cube figure {
display: block;
position: absolute;
width: 196px;
height: 196px;
border: 2px solid black;
}
#cube.panels-backface-invisible figure {
-webkit-backface-visibility: hidden;
}
#cube .front { background: hsla( 0, 100%, 50%, 0.7 ); }
#cube .top { background: hsla( 240, 100%, 50%, 0.7 ); }
#cube .front {
-webkit-transform: translateZ( 100px );
}
#cube .top {
-webkit-transform: rotateX( 90deg ) translateZ( 100px );
}
</style>
</head>
<body>
<section class="container">
<div id="cube" class="show-front">
<figure class="front">1</figure>
<figure class="top">5</figure>
</div>
</section>
</body>
</html>
当我添加以下 CSS 规则时,怎么会这样:
#cube figure.top {height:300px;}
蓝色方块“向下移动”?当我增加高度时,蓝色方块向下移动得更多。为什么会这样?我期待蓝色方块通过向我突出来变得“更长”。
补充笔记
这是相同的代码,但是这一次,我旋转了两张幻灯片,这样你就可以从侧面看到我的意思:
请注意蓝色在顶部,红色在右侧。如果添加#cube figure.top{height:300px;}
,蓝色方块会向下移动。下面有人说是下移的“错觉”。但我不明白这种错觉是如何实现的。空间,我不明白。什么是让蓝色方块保持在顶部的直观方法,但它的高度也延伸到超出红色方块的顶部?