照片1
…">
当前位置:首页 > CSS

css立体相册制作

2026-03-31 22:44:36CSS

使用CSS 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 class="photo">照片5</div>
  <div class="photo">照片6</div>
</div>

基础CSS样式

.photo-album {
  width: 300px;
  height: 200px;
  position: relative;
  perspective: 1000px;
  margin: 100px auto;
}

.photo {
  position: absolute;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  border: 5px solid white;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  transition: transform 1s;
}

实现3D旋转效果

立方体相册实现

css立体相册制作

.photo:nth-child(1) {
  background-image: url('photo1.jpg');
  transform: rotateY(0deg) translateZ(150px);
}
.photo:nth-child(2) {
  background-image: url('photo2.jpg');
  transform: rotateY(60deg) translateZ(150px);
}
.photo:nth-child(3) {
  background-image: url('photo3.jpg');
  transform: rotateY(120deg) translateZ(150px);
}
.photo:nth-child(4) {
  background-image: url('photo4.jpg');
  transform: rotateY(180deg) translateZ(150px);
}
.photo:nth-child(5) {
  background-image: url('photo5.jpg');
  transform: rotateY(240deg) translateZ(150px);
}
.photo:nth-child(6) {
  background-image: url('photo6.jpg');
  transform: rotateY(300deg) translateZ(150px);
}

.photo-album {
  transform-style: preserve-3d;
  animation: rotate 20s infinite linear;
}

@keyframes rotate {
  from { transform: rotateY(0deg); }
  to { transform: rotateY(360deg); }
}

添加交互效果

悬停暂停动画

.photo-album:hover {
  animation-play-state: paused;
}

.photo:hover {
  transform: scale(1.2) translateZ(200px);
  z-index: 10;
}

响应式设计调整

适应不同屏幕尺寸

css立体相册制作

@media (max-width: 768px) {
  .photo-album {
    width: 200px;
    height: 150px;
    perspective: 500px;
  }

  .photo {
    transform: scale(0.9);
  }
}

高级3D效果增强

添加景深效果

.photo {
  filter: brightness(0.9);
}

.photo:nth-child(1) {
  filter: brightness(1.1);
}

.photo:hover {
  filter: brightness(1.2) drop-shadow(0 0 10px rgba(255,255,255,0.7));
}

阴影和反射效果

.photo-album::after {
  content: '';
  position: absolute;
  bottom: -50px;
  left: 0;
  width: 100%;
  height: 20px;
  background: radial-gradient(ellipse at center, 
    rgba(0,0,0,0.5) 0%, 
    rgba(0,0,0,0) 70%);
  transform: rotateX(90deg);
  opacity: 0.5;
}

这些代码组合可以创建一个自动旋转的3D立体相册,悬停时会暂停旋转并突出显示当前照片。通过调整perspective值和translateZ值可以改变3D效果的强度,添加媒体查询确保在不同设备上都有良好显示效果。

标签: 相册制作css
分享给朋友:

相关文章

css制作导航栏

css制作导航栏

水平导航栏 使用 display: inline-block 或 flexbox 创建水平导航栏。设置背景色、内边距和悬停效果增强交互性。 <nav class="horizontal-nav…

css 制作表单

css 制作表单

使用 CSS 制作表单 表单是网页交互的重要组成部分,通过 CSS 可以美化表单元素,提升用户体验。以下是常见的表单样式设计方法。 基础表单结构 HTML 表单通常包含输入框、标签、按钮等元素。以下…

css制作表单

css制作表单

使用CSS制作表单的基本方法 创建一个美观且功能完善的表单需要结合HTML结构和CSS样式。以下是关键步骤和示例代码: HTML基础结构 <form class="my-form"&…

怎么制作css表格

怎么制作css表格

使用HTML和CSS创建表格 HTML提供<table>标签用于创建表格结构,CSS用于控制样式。以下是一个基础示例: <table class="styled-table">…

css制作扇形图

css制作扇形图

使用CSS制作扇形图 方法一:使用clip-path和transform 通过CSS的clip-path和transform属性可以快速实现扇形效果。定义一个圆形元素,然后裁剪出扇形部分。 .fan…

css制作日历

css制作日历

使用CSS Grid布局制作日历 日历的布局适合使用CSS Grid实现,因其天然的行列结构。以下是一个基础日历的HTML和CSS代码: <div class="calendar">…