ToB企服应用市场:ToB评测及商务社交产业平台

标题: 前端小项目-夸大鼠标悬停时效果的名片 [打印本页]

作者: 兜兜零元    时间: 2024-7-21 03:39
标题: 前端小项目-夸大鼠标悬停时效果的名片
前端练习小项目——动态效果名片

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

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


那么我们怎样去实现这样的小案例呢?在下文中我们对每一段紧张的代码都进行了解释,读者可以根据注释对代码进行明白。
1. HTML代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.     <title>Dynamic Business Card</title>
  8.     <link rel="stylesheet" href="./style.css">
  9. </head>
  10. <body>
  11.     <div class="container">
  12.         <div class="card">
  13.             <div class="image">
  14.                 <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">
  15.             </div>
  16.             <div class="content">
  17.                 <h2>John Doe</h2>
  18.                 <p>Front-end Developer</p>
  19.             </div>
  20.         </div>
  21.     </div>
  22. </body>
  23. </html>
复制代码
看完上述的代码之后,我相信读者已经有了大致的内容明白了,现在让我们简单的回顾一下上述的代码:

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

  1. * {
  2.     margin: 0;
  3.     padding: 0;
  4.     box-sizing: border-box;
  5. }
  6. body {
  7.     display: flex;
  8.     justify-content: center;
  9.     align-items: center;
  10.     min-height: 100vh;
  11.     background-color: #f0f0f0;
  12. }
  13. .container {
  14.     perspective: 1000px;
  15. }
  16. .card {
  17.     width: 300px;
  18.     height: 400px;
  19.     background-color: #fff;
  20.     border-radius: 8px;
  21.     box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  22.     overflow: hidden;
  23.     transition: transform 0.5s ease;
  24.     transform-style: preserve-3d;
  25. }
  26. .card:hover {
  27.     transform: rotateY(20deg);
  28. }
  29. .image img {
  30.     width: 100%;
  31.     height: 200px;
  32.     object-fit: cover;
  33. }
  34. .content {
  35.     padding: 20px;
  36. }
  37. .content h2 {
  38.     font-size: 24px;
  39.     color: #333;
  40. }
  41. .content p {
  42.     font-size: 16px;
  43.     color: #666;
  44.     margin-top: 10px;
  45. }
复制代码
注:上边的代码中我们将每一行代码的解说都附在了代码的上边,希望读者可以跟随着代码中的注释来明白每行代码的用意。
这里我们在简单的进行解释一下:

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

结语: 通过本文,你不仅学会了怎样构建一个动态效果名片,还加深了对HTML和CSS的明白。希望这个小项目能引发你继续探索前端开发的热情。
点睛之笔:

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


视觉效果


利用场景


示例

假设有一个卡片元素,我们希望在鼠标悬停时,卡片能够产生一种立体的翻转效果。这时,我们可以在外层容器上设置perspective属性,并在卡片元素上应用旋变化换:
  1. .container {
  2.     perspective: 1000px;
  3. }
  4. .card {
  5.     transition: transform 0.5s ease;
  6.     transform-style: preserve-3d;
  7. }
  8. .card:hover {
  9.     transform: rotateY(20deg);
  10. }
复制代码
在这个示例中:

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

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.     <title>Dynamic Business Card</title>
  8.     <link rel="stylesheet" href="./style.css">
  9. <style>
  10. * {
  11.     margin: 0;
  12.     padding: 0;
  13.     box-sizing: border-box;
  14. }
  15. body {
  16.     display: flex;
  17.     justify-content: center;
  18.     align-items: center;
  19.     min-height: 100vh;
  20.     background-color: #f0f0f0;
  21. }
  22. .container {
  23.     perspective: 1000px;
  24.         margin:10px;
  25. }
  26. .card {
  27.     width: 300px;
  28.     height: 400px;
  29.     background-color: #fff;
  30.     border-radius: 8px;
  31.     box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  32.     overflow: hidden;
  33.     transition: transform 0.5s ease;
  34.     transform-style: preserve-3d;
  35. }
  36. .card:hover {
  37.     transform: rotateY(20deg);
  38. }
  39. .image img {
  40.     width: 100%;
  41.     height: 200px;
  42.     object-fit: cover;
  43. }
  44. .content {
  45.     padding: 20px;
  46. }
  47. .content h2 {
  48.     font-size: 24px;
  49.     color: #333;
  50. }
  51. .content p {
  52.     font-size: 16px;
  53.     color: #666;
  54.     margin-top: 10px;
  55. }</style>
  56. </head>
  57. <body>
  58.     <div class="container">
  59.         <div class="card">
  60.             <div class="image">
  61.                 <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">
  62.             </div>
  63.             <div class="content">
  64.                 <h2>John Doe</h2>
  65.                 <p>Front-end Developer</p>
  66.             </div>
  67.         </div>
  68.     </div>
  69.     <div class="container">
  70.         <div class="card">
  71.             <div class="image">
  72.                 <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">
  73.             </div>
  74.             <div class="content">
  75.                 <h2>John Doe</h2>
  76.                 <p>Front-end Developer</p>
  77.             </div>
  78.         </div>
  79.     </div>
  80.     <div class="container">
  81.         <div class="card">
  82.             <div class="image">
  83.                 <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">
  84.             </div>
  85.             <div class="content">
  86.                 <h2>John Doe</h2>
  87.                 <p>Front-end Developer</p>
  88.             </div>
  89.         </div>
  90.     </div>
  91. </body>
  92. </html>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4