html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>CSS3制作3D图片立方体旋转特效</title> <link rel="stylesheet" href="3d.css"> </head> <body> <div class="wrap"> <div class="cube"> <div class="out_front"> <img src="img/1.png" class="pic"> </div> <div class="out_back"> <img src="img/2.png" class="pic"> </div> <div class="out_left"> <img src="img/3.png" class="pic"> </div> <div class="out_right"> <img src="img/4.png" class="pic"> </div> <div class="out_top"> <img src="img/5.png" class="pic"> </div> <div class="out_bottom"> <img src="img/6.png" class="pic"> </div> <span class="in_front"> <img src="img/7.png" class="in_pic"> </span> <span class="in_back"> <img src="img/8.png" class="in_pic"> </span> <span class="in_left"> <img src="img/9.png" class="in_pic"> </span> <span class="in_right"> <img src="img/10.png" class="in_pic"> </span> <span class="in_top"> <img src="img/11.png" class="in_pic"> </span> <span class="in_bottom"> <img src="img/12.png" class="in_pic"> </span> </div> </div> </body> </html>
css
html{ background:linear-gradient(#ff0 0%,#000 80%); height: 100%; } .wrap{ width: 650px; height: 200px; margin: 150px 360px; position: relative; } .cube{ width: 200px; height: 200px; margin: 0 auto; transform-style: preserve-3d; transform: rotateX(-30deg) rotateY(-80deg); -webkit-animation: rotate 20s infinite; animation-timing-function: linear; } @-webkit-keyframes rotate{ from{transform: rotateX(0deg) rotateY(0deg);} to{transform: rotateX(360deg) rotateY(360deg);} } .cube div{ position: absolute; width: 200px; height: 200px; opacity: 0.8; transition: all .4s; } .pic{ width: 200px; height: 200px; } .cube .out_front{ transform: rotateY(0deg) translateZ(100px); } .cube .out_back{ transform: translateZ(-100px) rotateY(180deg); } .cube .out_left{ transform: rotateY(90deg) translateZ(100px); } .cube .out_right{ transform: rotateY(-90deg) translateZ(100px); } .cube .out_top{ transform: rotateX(90deg) translateZ(100px); } .cube .out_bottom{ transform: rotateX(-90deg) translateZ(100px); } .cube span{ display: bloack; width: 100px; height: 100px; position: absolute; top: 50px; left: 50px; } .cube .in_pic{ width: 100px; height: 100px; } .cube .in_front{ transform: rotateY(0deg) translateZ(50px); } .cube .in_back{ transform: translateZ(-50px) rotateY(180deg); } .cube .in_left{ transform: rotateY(90deg) translateZ(50px); } .cube .in_right{ transform: rotateY(-90deg) translateZ(50px); } .cube .in_top{ transform: rotateX(90deg) translateZ(50px); } .cube .in_bottom{ transform: rotateX(-90deg) translateZ(50px); } .cube:hover .out_front{ transform: rotateY(0deg) translateZ(200px); } .cube:hover .out_back{ transform: translateZ(-200px) rotateY(180deg); } .cube:hover .out_left{ transform: rotateY(90deg) translateZ(200px); } .cube:hover .out_right{ transform: rotateY(-90deg) translateZ(200px); } .cube:hover .out_top{ transform: rotateX(90deg) translateZ(200px); } .cube:hover .out_bottom{ transform: rotateX(-90deg) translateZ(200px); }