【css酷炫效果】纯CSS实现照片堆叠效果

news/2025/3/20 22:03:03/

css酷炫效果】纯CSS实现照片堆叠效果

  • 创作背景
  • html结构
  • css样式
  • 完整代码
    • 基础版
    • 进阶版(增加鼠标悬停查看)
  • 效果图

想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u011561335/90492022

创作随缘,不定时更新。

创作背景

刚看到csdn出活动了,赶时间,直接上代码。

html结构

    <div class="photo-stack"><div class="photo" style="background-image: url('a.gif');"></div><div class="photo" style="background-image: url('a.gif');"></div><div class="photo" style="background-image: url('a.gif');"></div> </div>

css_19">css样式

body {display: flex;justify-content: center;align-items: center;height: 100vh;margin: 0;background-color: #f0f0f0;
}.photo-stack {position: relative;width: 300px; /* 根据需要调整宽度 */height: 400px; /* 根据需要调整高度 */perspective: 1000px; /* 添加透视效果 */
}.photo {position: absolute;width: 100%;height: 100%;background-size: cover;background-position: center;transition: transform 0.3s ease, box-shadow 0.3s ease;
}/* 设置每张照片的阴影和位置 */
.photo:nth-child(1) {z-index: 3; /* 最上层 */transform: translateY(0) rotateX(0deg); /* 初始位置 */box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), 0 8px 16px rgba(0, 0, 0, 0.1); /* 添加阴影 */
}.photo:nth-child(2) {z-index: 2; /* 中间层 */transform: translateY(10px) rotateX(5deg); /* 稍微偏移和旋转 */box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2), 0 12px 24px rgba(0, 0, 0, 0.1); /* 阴影比上层更深 */
}.photo:nth-child(3) {z-index: 1; /* 最下层 */transform: translateY(20px) rotateX(10deg); /* 更多偏移和旋转 */box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3), 0 16px 32px rgba(0, 0, 0, 0.15); /* 最深的阴影 */
}

完整代码

基础版

<!DOCTYPE html>
<html lang="en"> 
<head><title>页面特效</title>
<style type="text/css">
body {display: flex;justify-content: center;align-items: center;height: 100vh;margin: 0;background-color: #f0f0f0;
}.photo-stack {position: relative;width: 300px; /* 根据需要调整宽度 */height: 400px; /* 根据需要调整高度 */perspective: 1000px; /* 添加透视效果 */
}.photo {position: absolute;width: 100%;height: 100%;background-size: cover;background-position: center;transition: transform 0.3s ease, box-shadow 0.3s ease;
}/* 设置每张照片的阴影和位置 */
.photo:nth-child(1) {z-index: 3; /* 最上层 */transform: translateY(0) rotateX(0deg); /* 初始位置 */box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), 0 8px 16px rgba(0, 0, 0, 0.1); /* 添加阴影 */
}.photo:nth-child(2) {z-index: 2; /* 中间层 */transform: translateY(10px) rotateX(5deg); /* 稍微偏移和旋转 */box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2), 0 12px 24px rgba(0, 0, 0, 0.1); /* 阴影比上层更深 */
}.photo:nth-child(3) {z-index: 1; /* 最下层 */transform: translateY(20px) rotateX(10deg); /* 更多偏移和旋转 */box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3), 0 16px 32px rgba(0, 0, 0, 0.15); /* 最深的阴影 */
}
</style></head>
<body><div class="photo-stack"><div class="photo" style="background-image: url('a.gif');"></div><div class="photo" style="background-image: url('a.gif');"></div><div class="photo" style="background-image: url('a.gif');"></div> </div></body>
</html>

进阶版(增加鼠标悬停查看)

<!DOCTYPE html>
<html lang="en"> 
<head><title>页面特效</title>
<style type="text/css">
body {display: flex;justify-content: center;align-items: center;height: 100vh;margin: 0;background-color: #f0f0f0;
}.photo-stack {position: relative;width: 300px; /* 根据需要调整宽度 */height: 400px; /* 根据需要调整高度 */perspective: 1000px; /* 添加透视效果 */
}.photo {position: absolute;width: 100%;height: 100%;background-size: cover;background-position: center;transition: transform 0.3s ease, box-shadow 0.3s ease;
}/* 设置每张照片的阴影和位置 */
.photo:nth-child(1) {z-index: 3; /* 最上层 */transform: translateY(0) rotateX(0deg); /* 初始位置 */box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), 0 8px 16px rgba(0, 0, 0, 0.1); /* 添加阴影 */
}.photo:nth-child(2) {z-index: 2; /* 中间层 */transform: translateY(10px) rotateX(5deg); /* 稍微偏移和旋转 */box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2), 0 12px 24px rgba(0, 0, 0, 0.1); /* 阴影比上层更深 */
}.photo:nth-child(3) {z-index: 1; /* 最下层 */transform: translateY(20px) rotateX(10deg); /* 更多偏移和旋转 */box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3), 0 16px 32px rgba(0, 0, 0, 0.15); /* 最深的阴影 */
}
.photo:hover {transform: translateX(410px) rotateX(-5deg); /* 悬停时上移并稍微旋转 */box-shadow: 0 12px 24px rgba(0, 0, 0, 0.3), 0 24px 48px rgba(0, 0, 0, 0.2); /* 更深的阴影 */
}
</style></head>
<body><div class="photo-stack"><div class="photo" style="background-image: url('a.gif');"></div><div class="photo" style="background-image: url('a.gif');"></div><div class="photo" style="background-image: url('a.gif');"></div> </div></body>
</html>

效果图

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/1580696.html

相关文章

vue 数字位数不足在前面或者后面补0

vue 数字位数不足在前面或者后面补0 console.log(1.padStart(4, 0)) // 0001 console.log(1.padEnd(4, 0)) // 1000

docker需要sudo才能使用

一种方法是添加当前用户到docker组里去&#xff0c;当时添加的时候貌似是没问题的&#xff0c;但是现在又不可以了 产生的报错 ❯ docker images Cannot connect to the Docker daemon at unix:///home/ying/.docker/desktop/docker.sock. Is the docker daemon running?解决…

trae和Spring Boot Java 项目 ruoyi框架

再不拥抱AI&#xff0c;开发生涯肯定受限&#xff0c;再不享受AI&#xff0c;白白浪费键盘。 1.下载安装Trae 国际版&#xff1a;Trae 国内版&#xff1a;Trae - AI 原生 IDE https://www.trae.com.cn/ 国际版本需要翻墙&#xff0c;建议直接国内版本-主要是豆包大模型和DS R1、…

Tomcat - Session 会话保持

一、Tomcat - Session 会话保持概念 1.1.基本定义 在 Web 应用程序中&#xff0c;HTTP 协议是无状态的&#xff0c;这意味着服务器无法自动识别不同请求是否来自同一个客户端。为了跟踪客户端的状态&#xff0c;引入了 Session 机制。在 Tomcat 环境下&#xff0c;Session 会…

【Android】安卓 Java下载ZIP文件并解压(笔记)

写在前面的话 在这篇文章中&#xff0c;我们将详细讲解如何在 Android 中通过 Java 下载 ZIP 文件并解压&#xff0c;同时处理下载进度、错误处理以及优化方案。 以下正文 1.权限配置 在 AndroidManifest.xml 中&#xff0c;我们需要添加相应的权限来确保应用能够访问网络和设…

Docker基础知识介绍

Docker基础篇 必须要在Linux环境下才能运行&#xff0c;windows下运行也是安装虚拟机后才能下载安装运行 下载安装 linux 依次执行下边步骤 更新 yum yum update 卸载旧的Docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \do…

计算机网络笔记再战——理解几个经典的协议HTTP章3

理解几个经典协议——HTTP章3 返回结果的HTTP状态码 ​ 我们知道&#xff0c;ICMP可以传递IP通信时候的状态如何。HTTP虽然没有辅助的解析&#xff0c;但是它可以使用状态码来表达我们的HTTP请求的结果&#xff0c;标记服务器端的处理是否正常、通知出现的错误等工作。这就是…

Python 生成数据(随机漫步)

数据可视化 指的是通过可视化表示来探索数据&#xff0c;它与数据挖掘 紧密相关&#xff0c;而数据挖掘指的是使用代码来探索数据集的规律和关联。数据集可以是用一行代码就能表 示的小型数字列表&#xff0c;也可以是数以吉字节的数据。 随机漫步 在本节中&#xff0c;我们将…