具体步骤如下:
一、立方体结构中,使用一个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值来使它们处于适当的位置上。你可以自己修改一下这些值来看看效果。
css3 的transform属性允许我们旋转、缩放和移动元素。 可以通过给它传递一个 rotate(度数) 值来旋转一个元素,正值表示顺时针方向旋转,负值表示逆时针方向旋转,旋转的中心点为元素的中心。
CSS代码如下:
.rotate{
-ms-transform:rotate(90deg)/* IE 9 */
-moz-transform:rotate(90deg)/* Firefox */
-webkit-transform:rotate(90deg)/* Safari and Chrome */
-o-transform:rotate(90deg)/* Opera */
}
浏览器支持:Firefox 4+、Oprea 10+、Safari 3.1+、Chrome 8+、IE 9+
/* css3 让一个图片不断翻转示例代码 */#gavinPlay{
/* background:color url x y repeat 图片来自百度图片,按需要更换 */
background:red url("https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=2406548182,3889596045&fm=80") center no-repeat
/* background-size:auto auto || cover 代表以宽或高填满元素背景 */
background-size:cover
/* 随便设置宽高值,测试 */
width:200px
height:200px
/* 设置默认样式,开启3d硬件加速 */
-webkit-transform:translate3d(0,0,0)
-moz-transform:translate3d(0,0,0)
transform:translate3d(0,0,0)
/* 设置动画,animation:动画名称 动画播放时长单位秒或微秒 动画播放的速度曲线linear为匀速 动画播放次数infinite为循环播放 */
-webkit-animation:play 3s linear infinite
-moz-animation:play 3s linear infinite
animation:play 3s linear infinite
}
@-webkit-keyframes play{
0% {
/*
水平翻转
*/
-webkit-transform:rotateY(0deg)
/*
垂直翻转
-webkit-transform:rotateX(0deg)
顺时针旋转
-webkit-transform:rotate(0deg)
逆时针旋转
-webkit-transform:rotate(0deg)
*/
}
100% {
/* 水平翻转 */
-webkit-transform:rotateY(360deg)
/* 垂直翻转
-webkit-transform:rotateX(360deg)
顺时针旋转
-webkit-transform:rotate(360deg)
逆时针旋转
-webkit-transform:rotate(-360deg)
*/
}
}
@-moz-keyframes play{
0% {
-moz-transform:rotateY(0deg)
/*
-moz-transform:rotateX(0deg)
-moz-transform:rotate(0deg)
-moz-transform:rotate(0deg)
*/
}
100% {
-moz-transform:rotateY(360deg)
/*
-moz-transform:rotateX(360deg)
-moz-transform:rotate(360deg)
-moz-transform:rotate(-360deg)
*/
}
}
@keyframes play{
0% {
transform:rotateY(0deg)
/*
transform:rotateX(0deg)
transform:rotate(0deg)
transform:rotate(0deg)
*/
}
100% {
transform:rotateY(360deg)
/*
transform:rotateX(360deg)
transform:rotate(360deg)
transform:rotate(-360deg)
*/
}
} <!-- html 布局代码 -->
<div id="gavinPlay"></div>