「青训营 X 码上掘金」制作个人名片

149 阅读3分钟

当青训营遇上码上掘金

前言

名片是一个人向他人介绍自己信息的一种非常简单直接的方式,在此次的青训营码上掘金项目中我选择了个人名片的制作,希望通过设计来制作一张简约且好看的名片。

代码思路

名片的设计参考了CSDN上的网页前端UI设计id1078的作品,在此基础上进行了一些修改和添加。名片的主体内容包括基本个人信息:姓名、专业、个性签名。名片上还放上了地址、邮箱和电话,初步的设想是点击这些会跳转其他的网页,但是在基本的名片制作中省略的具体的跳转,仅做icon图标的展示。动画的设计是鼠标移动到名片上的时候,图片上移,显示更多信息,还会有一些小动画展示图标。

HTML代码

<!DOCTYPE html>
  <head>
    <meta charset="utf-8">
    <title>Personal Card</title>
  </head>

  <body>
    <div class="content" >
    <div class="front" id="front">  
      <div class="image">
        <img src="https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/45b81d8641a341318a4b0ae841ea2920~tplv-k3u1fbpfcp-watermark.image?">
      </div>

      <div class="introduce">
        <div class="info">
          <h2>Ruoxin Huang</h2>
          <p><strong>Learning direction</strong>:front-end technology</p>
         <p><strong>motto</strong>:This is Rhode Island. If you want to jump, jump here.</p>
         <p><strong>school major</strong>:Electronic information science and technology</p>
        </div>
      </div>

     <ul>
       <li><a href="#">
         <i class="ion-ios-home"></i>
         </a></li>
       <li><a href="#">
         <i class="ion-ios-email"></i>
         </a></li>
       <li><a href="#">
         <i class="ion-ios-telephone"></i>
         </a></li>
    </ul>
    <div>   
  </body>
</html>

通过上述的HTML代码可以看出,名片的基本结构图片,文字介绍,和几个图标。个性签名选用了我很喜欢的一句话:这里就是罗德岛要跳就在这里跳。

CSS

CSS主要实现基本的格式设计,此处对动画图标部分做进一步的介绍。 首先是对页面的内容进行分层,利用z-index,将文字做第一层,图片做第二层,小图标做第三层,层层重叠,动画效果的显示就是鼠标移动到图片上的时候图片上移,显示出下面的文字,接着小图标上移到图片上。

引入图标

@import url(https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css);

引入了外链的图标库,一开始的时候尝试用过link连接,但是发现edge的网页好像不是很方便用link,有时候会有不显示的问题。在html中用ul的标签引入三个图标,方便后续修改。

ul li a{
  display: block;
  height: 50px;
  width: 50px;
  color: #000;
  line-height: 50px;
  font-size: 30px;
  border-radius: 20%;    /*设置元素的外边框圆角 */
  opacity: 0;
  transform: translateY(200px);
  background: #fff;
  transition: transform 0.3s ease-out, opacity 0.3s ease-out;
}

对图标的设计首先改成行级排版,让这几个元素在一行上,显示得更好看.并且将每一个元素设置外边框圆角,显出一个有圆角的方形图案。再使用层叠样式表,把元素移动到想要的位置。

动画设计
首先是图片的上移动,鼠标放到名片的图片上时,图片向上移动一点,露出下面的空白部分显示个人信息。

.front:hover .image{             /* hover选择器,选择鼠标指针浮动在其上的元素并设计样式 :鼠标悬停的时候图片上移110px*/
  transform: translateY(-188px);
}

同时设置图片渐隐

.front:hover .image img{
  opacity: 0.5;      /*图片渐隐的透明程度,调节成0.5,即半透明*/
}

对于小图标的动画设计,设置延时,使得每个图标出现的时间有间隔
.front:hover > ul > li > a{    /*设置延时*/
  opacity: 1;
  transform: translateY(0);
}
.front:hover > ul > li:nth-child(2) a{
  transition-delay: 0.5s;
}
.front:hover > ul > li:nth-child(3) a{
  transition-delay: 1s;
}

完整代码和演示