css制作相片墙
使用CSS Grid布局创建相片墙
通过CSS Grid可以快速实现响应式相片墙布局。定义网格容器并设置行列间距:
.photo-wall {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
grid-gap: 15px;
padding: 20px;
}
为每个相片元素添加过渡动画效果:
.photo-item {
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
transition: transform 0.3s ease;
}
.photo-item:hover {
transform: scale(1.05);
z-index: 1;
}
使用Flexbox实现瀑布流布局
通过flex-wrap实现自适应列数的相片墙:

.photo-wall {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 16px;
padding: 16px;
}
.photo-item {
flex: 1 0 200px;
max-width: 300px;
margin-bottom: 16px;
}
添加图片自适应样式:
.photo-item img {
width: 100%;
height: auto;
object-fit: cover;
vertical-align: middle;
}
添加悬停特效增强交互
实现悬停时显示相片信息的覆盖层效果:

.photo-item {
position: relative;
}
.photo-info {
position: absolute;
bottom: 0;
background: rgba(0,0,0,0.7);
color: white;
width: 100%;
padding: 10px;
transform: translateY(100%);
transition: transform 0.3s ease;
}
.photo-item:hover .photo-info {
transform: translateY(0);
}
响应式设计调整
针对不同屏幕尺寸调整布局:
@media (max-width: 768px) {
.photo-wall {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 480px) {
.photo-wall {
grid-template-columns: 1fr;
}
}
添加加载动画效果
为图片加载过程添加占位动画:
.photo-item::before {
content: "";
display: block;
padding-top: 100%;
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
background-size: 200% 100%;
animation: loading 1.5s infinite;
}
@keyframes loading {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}






