欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  代码解读
 
  定义dom,页面中包含2个元素,分别代表兔子和云朵:
 
  <divclass="rabbit"></div>
 
  <divclass="clouds"></div>
 
  居中显示:
 
  body{
 
  margin:0;
 
  height:100vh;
 
  display:flex;
 
  align-items:center;
 
  justify-content:center;
 
  background:linear-gradient(midnightblue,black);
 
  font-size:30px;
 
  }
 
  画出兔子的身体:
 
  .rabbit{
 
  width:5em;
 
  height:3em;
 
  color:whitesmoke;
 
  background:currentColor;
 
  border-radius:70%90%60%50%;
 
  }
 
  用径向渐变画出兔子的眼睛:
 
  .rabbit{
 
  background:
 
  radial-gradient(
 
  circleat4.2em1.4em,
 
  #3330.15em,
 
  transparent0.15em
 
  ),/*eye*/
 
  currentColor;
 
  }
 
  用伪元素画出兔子的右耳:
 
  .rabbit::before{
 
  content:'';
 
  position:absolute;
 
  width:0.75em;
 
  height:2em;
 
  background-color:currentColor;
 
  border-radius:50%100%00;
 
  transform:rotate(-30deg);
 
  top:-1em;
 
  right:1em;
 
  }
 
  用阴影画出兔子的左耳:
 
  .rabbit::before{
 
  border:0.1emsolid;
 
  border-color:gainsborotransparenttransparentgainsboro;
 
  box-shadow:-0.5em00-0.1em;
 
  }
 
  用伪元素画出兔子的尾巴:
 
  .rabbit::after{
 
  content:'';
 
  position:absolute;
 
  width:1em;
 
  height:1em;
 
  background-color:currentColor;
 
  border-radius:50%;
 
  left:-0.3em;
 
  top:0.5em;
 
  }
 
  用阴影画出兔子的腿:
 
  .rabbit::after{
 
  box-shadow:
 
  0.5em1em0,
 
  4em1em0-0.2em,
 
  4em1em0-0.2em;
 
  }
 
  画出兔子的影子:
 
  .rabbit{
 
  box-shadow:-0.2em1em0-0.75em#333;
 
  }
 
  画出一个云朵:
 
  
 
  .clouds{
 
  width:2em;
 
  height:2em;
 
  color:whitesmoke;
 
  background:currentColor;
 
  border-radius:100%100%00;
 
  transform:translate(0,-5em);
 
  }
 
  .clouds::before,
 
  .clouds::after{
 
  content:'';
 
  position:absolute;
 
  background-color:currentColor;
 
  bottom:0;
 
  }
 
  .clouds::before{
 
  width:1.25em;
 
  height:1.25em;
 
  border-radius:100%100%0100%;
 
  left:-30%;
 
  }
 
  .clouds::after{
 
  width:1.5em;
 
  height:1.5em;
 
  border-radius:100%100%100%0;
 
  right:-30%;
 
  }
 
  用阴影再画2个云朵:
 
  .rabbit{
 
  z-index:1;
 
  }
 
  .clouds,
 
  .clouds::before,
 
  .clouds::after{
 
  box-shadow:
 
  5em2em0-0.3em,
 
  -2em2em00;
 
  }
 
  接下来制作动画效果。
 
  增加兔子跳动的动画:
 
  
 
  .rabbit{
 
  animation:hop3slinearinfinite;
 
  }
 
  @keyframeshop{
 
  20%{
 
  transform:rotate(-10deg)translate(1em,-2em);
 
  box-shadow:-0.2em1em0-1em#333;
 
  }
 
  40%{
 
  transform:rotate(10deg)translate(3em,-4em);
 
  box-shadow:-0.2em3.25em0-1.1em#333;
 
  }
 
  60%,75%{
 
  transform:rotate(0deg)translate(4em,0);
 
  box-shadow:-0.2em1em0-0.75em#333;
 
  }
 
  }
 
  增加兔子的腿的伸缩动画:
 
  .rabbit::after{
 
  animation:kick3sinfinitelinear;
 
  }
 
  @keyframeskick{
 
  40%{
 
  box-shadow:
 
  0.5em2em0,
 
  4.2em1.75em0-0.2em,
 
  4.4em1.9em0-0.2em;
 
  }
 
  }
 
  增加云朵飘动的动画:
 
  
 
  .clouds{
 
  animation:cloudy3sinfinitelinearforwards;
 
  filter:opacity(0);
 
  }
 
  @keyframescloudy{
 
  40%{
 
  transform:translate(-3em,-5em);
 
  filter:opacity(0.75);
 
  }
 
  55%{
 
  transform:translate(-4em,-5em);
 
  filter:opacity(0);
 
  }
 
  }
 
  大功告成!





本文转载自中文网

 

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/css3-style/c56828.shtml