css制作立体相册
使用CSS 3D变换制作立体相册
通过CSS的transform-style: preserve-3d和rotateY属性可以实现3D立体旋转效果。以下是一个基础实现方案:
HTML结构:
<div class="photo-album">
<div class="photo">照片1</div>
<div class="photo">照片2</div>
<div class="photo">照片3</div>
<div class="photo">照片4</div>
</div>
CSS样式:
.photo-album {
width: 300px;
height: 200px;
position: relative;
transform-style: preserve-3d;
animation: rotate 10s infinite linear;
}
.photo {
position: absolute;
width: 100%;
height: 100%;
background-size: cover;
border: 2px solid white;
box-shadow: 0 0 10px rgba(0,0,0,0.5);
transform-style: preserve-3d;
}
/* 为每张照片设置不同旋转角度 */
.photo:nth-child(1) { transform: rotateY(0deg) translateZ(150px); }
.photo:nth-child(2) { transform: rotateY(90deg) translateZ(150px); }
.photo:nth-child(3) { transform: rotateY(180deg) translateZ(150px); }
.photo:nth-child(4) { transform: rotateY(270deg) translateZ(150px); }
@keyframes rotate {
from { transform: rotateY(0deg); }
to { transform: rotateY(360deg); }
}
添加交互效果
通过:hover伪类可以增强用户体验,当鼠标悬停时暂停动画:
.photo-album:hover {
animation-play-state: paused;
}
.photo {
transition: transform 0.5s;
}
.photo:hover {
transform: scale(1.1) translateZ(180px);
z-index: 10;
}
响应式设计考虑
为确保在不同设备上正常显示,可以添加媒体查询调整尺寸:
@media (max-width: 600px) {
.photo-album {
width: 200px;
height: 150px;
}
.photo {
transform-origin: center center;
}
}
进阶效果:添加封面和阴影
通过伪元素和滤镜增强3D真实感:

.photo::before {
content: '';
position: absolute;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.1);
transform: translateZ(-10px);
filter: blur(5px);
}
.photo::after {
content: '';
position: absolute;
bottom: -10px;
left: 0;
width: 100%;
height: 10px;
background: linear-gradient(to bottom, rgba(0,0,0,0.3), transparent);
transform: rotateX(90deg);
transform-origin: bottom;
}
这些技术组合可以创建出具有立体感的交互式相册效果,通过调整旋转角度、过渡时间和z轴位移可以控制3D效果的深度和动态表现。






