在这个具有不同视角的立方体示例中:http: //codepen.io/HugoGiraudel/pen/GLbca
右边的有-webkit-perspective: 250px;
,左边的有-webkit-perspective: 1000px;
根据 Mozilla:“透视 CSS 属性确定 z=0 平面和用户之间的距离,以便为 3D 定位的元素提供一些透视。z>0 的每个 3D 元素都会变大;每个 z 的 3D 元素<0 变小。效果的强度由该属性的值决定。"
在这种情况下,右边的立方体应该离用户更近 750px,那么为什么它没有比左边的那个大很多呢?同样,如果您打开开发工具并将透视图更改为像 10000 像素这样的巨大数字,立方体将保持相同的大小。不应该很小吗?
这是代码:这不是我的,所以所有的功劳归于http://codepen.io/HugoGiraudel/
<div class="wrapper w1">
<h1><code>perspective: 1000px</code></h1>
<div class="cube">
<div class="side front">1</div>
<div class="side back">6</div>
<div class="side right">4</div>
<div class="side left">3</div>
<div class="side top">5</div>
<div class="side bottom">2</div>
</div>
</div>
<div class="wrapper w2">
<h1><code>perspective: 250px</code></h1>
<div class="cube">
<div class="side front">1</div>
<div class="side back">6</div>
<div class="side right">4</div>
<div class="side left">3</div>
<div class="side top">5</div>
<div class="side bottom">2</div>
</div>
</div>
和CSS:
.wrapper {
width: 50%;
float: left;
}
.w1 {
perspective: 1000px;
}
.w2 {
perspective: 250px;
}
.wrapper h1 {
text-align: center;
}
.cube {
font-size: 4em;
width: 2em;
margin: 1.5em auto;
transform-style: preserve-3d;
transform: rotateX(-40deg) rotateY(32deg);
}
.side {
position: absolute;
width: 2em;
height: 2em;
background: rgba(tomato, .6);
border: 1px solid rgba(0,0,0,.5);
color: white;
text-align: center;
line-height: 2em;
}
.front { transform: translateZ(1em); }
.top { transform: rotateX( 90deg) translateZ(1em); }
.right { transform: rotateY( 90deg) translateZ(1em); }
.left { transform: rotateY(-90deg) translateZ(1em); }
.bottom { transform: rotateX(-90deg) translateZ(1em); }
.back { transform: rotateY(-180deg) translateZ(1em); }