如何css制作3d旋转立方体效果?

html-css08

如何css制作3d旋转立方体效果?,第1张

具体步骤如下:

一、立方体结构中,使用一个wrapper div来包裹立方体。在里面使用6个div来制作立方体的6个面。

二、立方体的每一个面都有它自己的元素。我们稍后会使用CSS来将立方体的6个面放置到正确的位置上。

三、在立方体的CSS样式中,首先要关注的是立方体的wrapper div。为了制作3D效果,我们需要为它提供一个 CSS perspective。

四、CSS perspective属性是一个比较复杂的CSS3属性。最好的理解它的方法是看完文档后,自己动手修改一下DEMO中的perspective属性来看看它的变化。

下面需要给包含立方体6个面的立方体的容器.cube提供样式:

1、.cube {

position: relative

width: 200px

transform-style: preserve-3d

2、给立方体容器200像素的宽度,并设置为相对定位,这样在它里面的立方体的6个面可以设置为绝对定位。

3、preserve-3d属性确保所有6个面都处于3D立体状态。

4、在为6个面设置它们的位置之前,先给它们一些通用的样式:

.cube div {

position: absolute

width: 200px

height: 200px

}

5、在进过上面对立方体6个面的一系列设置之后,现在我们可以为6个面制作变形效果,以使它们组装为一个立方体。

6、rotateY的值可以旋转立方体的各个面,使上面的文字处于正确的位置上。

7、而 translateZ 的值使元素在指定容器中向前或向后移动。translateY的值看起来有些混乱,但是请记住,它的作用是通过透明的面板来使指定的面升高或降低来制作3D效果。

8、每一个面都有自己的translations值来使它们处于适当的位置上。你可以自己修改一下这些值来看看效果。

复制代码代码如下:.example-class{text-shadow: [X offset] [Y offset] [Blur size] [Colour]}译者注:X表示x轴上的位移,可为负值;Y表示y轴上的位移,可为负值;Blur表示投影的宽度,不能为负值;Color为投影的颜色。堆叠多层CSS投影虽然我们没有必要堆叠多层投影,但通过堆叠多层投影会有更好的3D效果开始创建3D文字你可能会选择比文字更深的颜色来作为投影的颜色,所以这个例子中我就用白色的文字,用深一点的灰色作为投影颜色,这个例子中我将H2的文字渲染3D效果,css代码如下:复制代码代码如下:h2{text-shadow:1px 1px 0 #CCC,2px 2px 0 #CCC, /* end of 2 level deep grey shadow */3px 3px 0 #444,4px 4px 0 #444,5px 5px 0 #444,6px 6px 0 #444/* end of 4 level deep dark shadow */}效果如下:好了,到这里你已经创建了基本的3D文字,然而,让我们进一步来实现鼠标滑过的文字放大效果,并用css的transision属性实现圆滑的淡入淡出效果。首先用transform属性实现滑过字体放大复制代码代码如下:h2:hover{/* CSS3 Transform Effect */-webkit-transform: scale(1.2)/* Safari &Chrome */-moz-transform: scale(1.2)/* Firefox */-o-transform: scale(1.2)/* Opera */}效果如下:然后利用transition属性实现淡入淡出效果复制代码代码如下:h2{/* CSS3 Transition Effect */-webkit-transition: all 0.12s ease-out/* Safari &Chrome */-moz-transition: all 0.12s ease-out/* Firefox */-o-transition: all 0.12s ease-out/* Opera */}到此,我们就用CSS3实现了3D效果的文字,并且在鼠标滑过是让字体放大,且有淡入淡出的效果,这一切是用纯CSS实现的哦。

当使用css属性 perspective 的时候,需要一个容器并设置perspective depth值,然后让它的子元素在这个容器中做运动

给perspective设置深度值,这个值表示屏幕到元素所在环境最远距离

给立方体设置3D属性

给立方体的每个面设置绝对定位,长宽100%,然后设置背景为网格状。

对立方体的六个面进行Z轴的变换并且旋转,使它形成立方体的六个面

剩下最后一步就是让这个立方体旋转起来,设置无线循环的animation动画

实现效果如下