前端小项目-强调鼠标悬停时效果的名片

前端练习小项目——动态效果名片

前言: 在学习完HTML和CSS之后,我们就可以开始做一些小项目了。本篇文章所讲的小项目为——动态效果名片。通过这个项目,你将学会如何使用HTML和CSS来创建一个具有动态效果的名片。


在开始学习之前,先让我们看一下最终效果:

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

在这里插入图片描述

那么我们如何去实现这样的小案例呢?在下文中我们对每一段重要的代码都进行了解释,读者可以根据注释对代码进行理解。

1. HTML代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Dynamic Business Card</title><link rel="stylesheet" href="./style.css">
</head>
<body><div class="container"><div class="card"><div class="image"><img src="https://ts3.cn.mm.bing.net/th?id=ORMS.62b4df73a6260d99ef9aa62173e99333&pid=Wdp&w=300&h=156&qlt=90&c=1&rs=1&dpr=1.5&p=0" alt="Profile Picture"></div><div class="content"><h2>John Doe</h2><p>Front-end Developer</p></div></div> </div>
</body>
</html>

看完上述的代码之后,我相信读者已经有了大致的内容理解了,现在让我们简单的回顾一下上述的代码:

  • <head> 部分包含网页标题“Dynamic Business Card”和引入外部CSS样式表 style.css
  • 主体部分由一个外层容器 <div class="container"> 包裹,其中包含一个卡片 <div class="card">。卡片内部有图片容器 <div class="image"> 和内容容器 <div class="content">,展示了不同的图片和文本。

这样我们就大致的将网页的骨架搭建完成了,接下来让我们编写CSS代码来进行对其的美化。

2. CSS代码

* {margin: 0;padding: 0;box-sizing: border-box;
}body {display: flex;justify-content: center;align-items: center;min-height: 100vh;background-color: #f0f0f0;
}.container {perspective: 1000px;
}.card {width: 300px;height: 400px;background-color: #fff;border-radius: 8px;box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);overflow: hidden;transition: transform 0.5s ease;transform-style: preserve-3d;
}.card:hover {transform: rotateY(20deg);
}.image img {width: 100%;height: 200px;object-fit: cover;
}.content {padding: 20px;
}.content h2 {font-size: 24px;color: #333;
}.content p {font-size: 16px;color: #666;margin-top: 10px;
}

注:上边的代码中我们将每一行代码的讲解都附在了代码的上边,希望读者可以跟随着代码中的注释来理解每行代码的用意。

这里我们在简单的进行解释一下:

  1. * { margin: 0; padding: 0; box-sizing: border-box; }: 将所有元素的内外边距重置为0,并设置box-sizingborder-box,使得元素的宽度和高度包含边框和内边距。
  2. body: 设置了页面主体的样式,利用Flex布局将内容区域水平和垂直居中,并设置了背景颜色。
  3. .container: 这是一个容器,设置了透视效果,使得卡片的3D变换更加立体。
  4. .card: 卡片的样式,设置了宽度、高度、背景颜色、边框圆角和阴影效果。通过旋转(transform: rotateY())和过渡效果(transition),实现了鼠标悬停时的动画效果。
  5. .card:hover: 当鼠标悬停在卡片上时,通过旋转动画(transform 属性),增强了用户交互体验。
  6. .image img: 图片容器的样式,设置了图片的宽度和高度,使其适应容器。
  7. .content: 内容区域的样式,设置了内边距和文本的字体大小和颜色。

最终我们将代码运行尽可以得到最终结果啦!(如图)

最终效果
在这里插入图片描述在这里插入图片描述
结语: 通过本文,你不仅学会了如何构建一个动态效果名片,还加深了对HTML和CSS的理解。希望这个小项目能激发你继续探索前端开发的热情。

点睛之笔:

在CSS中,perspective 属性用于为3D空间中的元素设置视图距离。这个属性定义了观察者与Z=0平面之间的距离。也就是说,它控制了3D变换元素的透视效果,使得远离观察者的元素看起来更小。

属性值解释

  • perspective: 1000px;:这里的1000px表示透视点(即观察者眼睛的位置)距离Z=0平面的距离为1000像素。这个值越大,透视效果越明显,元素在Z轴方向上远离观察者时缩小得越快。

视觉效果

  • perspective值较大时,元素在进行3D变换(如旋转)时,远离观察者的一侧会显得更小,从而产生深度感。
  • 如果perspective值较小,透视效果不明显,元素在进行3D变换时,大小变化不大,看起来比较平面。

使用场景

  • 3D变换:在需要实现3D效果的元素上,通常会设置perspective属性,以增强视觉效果。
  • 增强用户体验:通过适当的透视效果,可以使界面更加生动和有趣。

示例

假设有一个卡片元素,我们希望在鼠标悬停时,卡片能够产生一种立体的翻转效果。这时,我们可以在外层容器上设置perspective属性,并在卡片元素上应用旋转变换:

.container {perspective: 1000px;
}.card {transition: transform 0.5s ease;transform-style: preserve-3d;
}.card:hover {transform: rotateY(20deg);
}

在这个示例中:

  • .container 设置了perspective属性,定义了透视点。
  • .card 在鼠标悬停时会应用rotateY(20deg)旋转变换,由于外层容器的perspective属性,卡片的旋转效果会产生透视效果,使得远离观察者的一侧看起来更小。

通过这种方式,可以创建出更加丰富和吸引人的交互效果。

完整代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Dynamic Business Card</title><link rel="stylesheet" href="./style.css">
<style>* {margin: 0;padding: 0;box-sizing: border-box;
}body {display: flex;justify-content: center;align-items: center;min-height: 100vh;background-color: #f0f0f0;
}.container {perspective: 1000px;margin:10px;
}.card {width: 300px;height: 400px;background-color: #fff;border-radius: 8px;box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);overflow: hidden;transition: transform 0.5s ease;transform-style: preserve-3d;
}.card:hover {transform: rotateY(20deg);
}.image img {width: 100%;height: 200px;object-fit: cover;
}.content {padding: 20px; }.content h2 {font-size: 24px;color: #333;
}.content p {font-size: 16px;color: #666;margin-top: 10px;
}</style>
</head>
<body><div class="container"><div class="card"><div class="image"><img src="https://ts3.cn.mm.bing.net/th?id=ORMS.62b4df73a6260d99ef9aa62173e99333&pid=Wdp&w=300&h=156&qlt=90&c=1&rs=1&dpr=1.5&p=0" alt="Profile Picture"></div><div class="content"><h2>John Doe</h2><p>Front-end Developer</p></div></div> </div><div class="container"><div class="card"><div class="image"><img src="https://ts3.cn.mm.bing.net/th?id=ORMS.62b4df73a6260d99ef9aa62173e99333&pid=Wdp&w=300&h=156&qlt=90&c=1&rs=1&dpr=1.5&p=0" alt="Profile Picture"></div><div class="content"><h2>John Doe</h2><p>Front-end Developer</p></div></div> </div><div class="container"><div class="card"><div class="image"><img src="https://ts3.cn.mm.bing.net/th?id=ORMS.62b4df73a6260d99ef9aa62173e99333&pid=Wdp&w=300&h=156&qlt=90&c=1&rs=1&dpr=1.5&p=0" alt="Profile Picture"></div><div class="content"><h2>John Doe</h2><p>Front-end Developer</p></div></div> </div>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1483874.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

信任、创新和传承: 对威步创始人的深入采访

Reflecting on 35 years, what was the moment you realized your vision for the company was becoming a reality? 回顾 35 年的发展历程&#xff0c;您意识到自己对公司的愿景即将成为现实的那一刻是什么时候&#xff1f; Oliver Winzenried 我们看到市场上出现了首批数字…

什么是多源异构数据?如何处理多源异构数据?

目录 一、多源异构数据的定义 二、多源异构数据的种类 三、多源异构数据的处理方案 1.数据接入 2.数据转换 3.数据输出 4.数据同步 四、结语 随着数字化转型的深入&#xff0c;企业和社会产生了前所未有的海量数据。这些数据不仅量大&#xff0c;而且来源多样&#xff0c;结构各…

昇思25天学习打卡营第21天 | 基于MindSpore的红酒分类实验

内容简介 本实验介绍了使用MindSpore框架实现K近邻算法&#xff08;KNN&#xff09;对红酒数据集进行分类的全过程。通过数据读取、预处理、模型构建与预测&#xff0c;展示了KNN算法在红酒数据集上的应用。实验中详细解释了KNN的原理、距离度量方式及其在分类问题中的应用&…

项目实用linux 操作详解-轻松玩转linux

我之前写过完整的linux系统详解介绍&#xff1a; LInux操作详解一&#xff1a;vmware安装linux系统以及网络配置 LInux操作详解二&#xff1a;linux的目录结构 LInux操作详解三&#xff1a;linux实际操作及远程登录 LInux操作详解四&#xff1a;linux的vi和vim编辑器 LInux操作…

商业数据分析思维的培训PTT制作大纲分享

商业数据分析思维的培训PTT制作大纲: 基本步骤: 明确PPT的目的和主题 收集并整理相关内容资料 构思并确定PPT的框架大纲 编写PPT的内容文字 插入图片、图表等视觉元素 设计PPT的版式和模板 排练并修改PPT 输出并备份最终版本 目的:数据思维培养; 主题:商业数据分…

【吊打面试官系列-ZooKeeper面试题】zookeeper 是如何保证事务的顺序一致性的?

大家好&#xff0c;我是锋哥。今天分享关于 【zookeeper 是如何保证事务的顺序一致性的&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; zookeeper 是如何保证事务的顺序一致性的&#xff1f; zookeeper 采用了全局递增的事务 Id 来标识&#xff0c;所有的 prop…

Seaborn库学习之heatmap()函数

Seaborn库学习之heatmap(函数) 一、简介 seaborn.heatmap是Seaborn库中用于绘制热图&#xff08;Heatmap&#xff09;的函数。热图是一种数据可视化技术&#xff0c;通过颜色的变化来展示数据矩阵中的数值大小。这种图表非常适合展示数值数据的分布和关系&#xff0c;尤其是在…

韦东山嵌入式linux系列-驱动进化之路:设备树的引入及简明教程

1 设备树的引入与作用 以 LED 驱动为例&#xff0c;如果你要更换LED所用的GPIO引脚&#xff0c;需要修改驱动程序源码、重新编译驱动、重新加载驱动。 在内核中&#xff0c;使用同一个芯片的板子&#xff0c;它们所用的外设资源不一样&#xff0c;比如A板用 GPIO A&#xff0c…

TI毫米波雷达1843 Out-of-box Demo 总结

总结 以上就是基于MATLAB实现1843 Out-of-box Demo的实时数据采集的相关内容,里面包含了 如何快速上手TI的毫米波雷达开发板;如何使用CCS构建TI的工程代码框架;如何阅读CCS源码确定串口输出的通讯协议;如何使用MATLAB实时接收串口数据;如何使用MATLAB编写上位机软件;成品…

13 循环神经网络—序列模型,语言模型

目录 1.序列模型序列数据统计工具自回归模型马尔可夫模型因果关系前向算法举例(根据过去的事件推测未来的事件)方案 A -马尔科夫假设方案 B -潜变量模型总结代码实现 使用马尔科夫假设 训练一个MLP2.文本预处理常见的文本预处理步骤代码实现3.语言模型**使用计数来建模**N 元…

大模型评测技术研讨会暨国际标准IEEE P3419第二次工作组会议成功召开

7月12日&#xff0c;由北京智源人工智能研究院主办的大模型评测技术研讨会暨国际标准IEEE P3419第二次工作组会议在智源大厦举办&#xff0c;来自百度、信通院、移动、联通、电信、浪潮、南方电网、南瑞、清华、北航等互联网大厂、科研机构、运营商、知名高校以及海外的50余位专…

Android:创建自定义View

点击查看创建自定义view官网文档 一、简介 设计良好的自定义视图与任何其他精心设计的类一样。它通过一个简单的接口封装一组特定的功能&#xff0c;高效使用 CPU 和内存&#xff0c;诸如此类。除了是一个精心设计的类之外&#xff0c;自定义视图还必须执行以下操作&#xff1…

vue echarts 柱状图表,点击柱子,路由代参数(X轴坐标)跳转

一 myChart.on(click, (params) > {if (params.componentType series && params.dataIndex ! undefined) {const months this.month_htqd[params.dataIndex]; // 获取点击柱状图的 X 轴坐标值alert(点击了柱状图&#xff0c;值为: ${months});// 根据点击的柱状图…

哪种SSL证书可以快速签发保护http安全访问?

用户访问网站&#xff0c;经常会遇到访问http网页时&#xff0c;提示网站不安全或者不是私密连接的提示&#xff0c;因为http是使用明文传输&#xff0c;数据传输中可能被篡改&#xff0c;数据不被保护&#xff0c;通常需要SSL证书来给数据加密。 SSL证书的签发速度&#xff0…

自动化测试中如何应对网页弹窗的挑战!

在自动化测试中&#xff0c;网页弹窗的出现常常成为测试流程中的一个难点。无论是警告框、确认框、提示框&#xff0c;还是更复杂的模态对话框&#xff0c;都可能中断测试脚本的正常执行&#xff0c;导致测试结果的不确定性。本文将探讨几种有效的方法来应对网页弹窗的挑战&…

Postgresql-12.5 安装及配置 -银河麒麟V10服务器版本

Postgresql-12.5 安装及配置 环境基于银河麒麟V10 服务器版本操作 此安装步骤Linux操作系统几乎通用 下载数据库安装包 链接&#xff1a;https://pan.baidu.com/s/1wt4Yjwv79W-fCd4tlMC4-w 提取码&#xff1a;0117 1.下载依赖 可以用系统自带的依赖库下载 yum install -…

基于PHP+MYSQL开发制作的趣味测试网站源码

基于PHPMYSQL开发制作的趣味测试网站源码。可在后台提前设置好缘分&#xff0c; 自己手动在数据库里修改数据&#xff0c;数据库里有就会优先查询数据库的信息&#xff0c; 没设置的话第一次查询缘分都是非常好的 95-99&#xff0c;第二次查就比较差 &#xff0c; 所以如果要…

什么是SQL锁

SQL锁是数据库系统中的一个重要概念&#xff0c;主要用于保证多用户环境下的数据库完整性和一致性。在多用户并发访问数据库时&#xff0c;通过加锁的方式防止其他事务访问指定的资源&#xff0c;从而控制并发的访问&#xff0c;确保数据的完整性和一致性。 SQL锁可以分为以下…

msyql (8.4,9.0) caching_sha2_password 转换 mysql_native_password用户认证

mysql 前言 caching_sha2_password 主要特性 用于增强用户账户密码的存储和验证安全性。这种插件利用 SHA-256 散列算法的变体来存储和验证密码 安全的密码散列&#xff1a; caching_sha2_password 使用基于 SHA-256 的算法来生成密码的散列值。这意味着即使数据库被未授权访…

地图项目涉及知识点总结

序&#xff1a;最近做了一个在地图上标记点的项目&#xff0c;用户要求是在地图上显示百万量级的标记点&#xff0c;并且地图仍要可用&#xff08;能拖拽&#xff0c;能缩放&#xff09;。调研了不少方法和方案&#xff0c;最终实现了相对流畅的地图系统&#xff0c;加载耗时用…