css 制作 主题相册
使用 CSS 制作主题相册
基本 HTML 结构
创建一个简单的 HTML 结构来容纳相册。使用 div 元素包裹图片,并为相册和图片添加类名以便于样式控制。
<div class="photo-album">
<div class="photo">
<img src="image1.jpg" alt="主题图片1">
</div>
<div class="photo">
<img src="image2.jpg" alt="主题图片2">
</div>
<!-- 更多图片 -->
</div>
网格布局
使用 CSS Grid 或 Flexbox 实现相册的网格布局。Grid 适合复杂的多行列排列,而 Flexbox 适合简单的单行或单列布局。
.photo-album {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 16px;
padding: 20px;
}
图片样式
为图片添加悬停效果和过渡动画,增强交互性。通过 object-fit 确保图片比例正确。

.photo img {
width: 100%;
height: 200px;
object-fit: cover;
border-radius: 8px;
transition: transform 0.3s ease;
}
.photo:hover img {
transform: scale(1.05);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}
主题颜色定制
通过 CSS 变量定义主题色,便于统一修改。例如,为相册添加边框或背景色。
:root {
--theme-color: #3498db;
}
.photo-album {
border: 2px solid var(--theme-color);
background-color: #f9f9f9;
}
响应式设计
使用媒体查询调整不同屏幕尺寸下的布局。例如,在小屏幕上减少列数。

@media (max-width: 600px) {
.photo-album {
grid-template-columns: repeat(2, 1fr);
}
}
添加标题和描述
为每张图片增加标题或描述文字,通过绝对定位或 Flexbox 实现文字叠加。
.photo {
position: relative;
}
.photo .caption {
position: absolute;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
color: white;
width: 100%;
padding: 8px;
text-align: center;
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
}
动画效果
使用 CSS 动画实现加载或切换效果。例如,淡入或滑动动画。
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.photo {
animation: fadeIn 0.5s ease-in-out;
}






