<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>3D變形案例1</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
.warp {
perspective: 2000px;
}
.wrap ul {
width: 200px;
height: 200px;
margin: 100px auto;
/* 生成相對定位的元素,相對於其正常位置進行定位。 */
position: relative;
transform-style: preserve-3d;
animation: move 5s infinite linear both;
transform-origin: 100px 100px -100px;
}
.wrap ul li {
width: 196px;
height: 196px;
line-height: 196px;
border: 2px solid #000;
background: rgba(152,251,152, 0.5);
font-size: 60px;
color: #fff;
list-style: none;
text-align: center;
/* 生成絕對定位的元素,相對於 static 定位以外的第一個父元素進行定位。 */
position: absolute;
left: 0;
top: 0;
}
/* 選擇器匹配屬於其父元素的第 N 個子元素 */
.wrap ul li:nth-child(1) {
top: -200px;
transform: rotateX(90deg);
transform-origin: bottom;
}
.wrap ul li:nth-child(2) {
top: 200px;
transform: rotateX(-90deg);
transform-origin: top;
}
.wrap ul li:nth-child(3) {
left: -200px;
transform: rotateY(-90deg);
transform-origin: right;
}
.wrap ul li:nth-child(4) {
left: 200px;
transform: rotateY(90deg);
transform-origin: left;
}
.wrap ul li:nth-child(5) {
transform: translateZ(-200px);
}
.wrap ul li:nth-child(6) {
transform: translateZ(0);
}
@keyframes move {
0% {
transform: rotateX(0) rotateY(0);
}
100% {
transform: rotateX(360deg) rotateY(360deg);
}
}
</style>
</head>
<body>
<div class="wrap">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
</div>
</body>
</html>