css画小熊猫

2019-04-24  本文已影响0人  实肆

这是demo的原型连接https://codepen.io/khr2003/pen/BGZdXw
制作思路:
把小熊猫分解

image.png
1.定位思路:position: absolute;的绝对定位
2.宽高通过继承父容器containe宽高的百分比定宽高
3.小熊猫分解成脸部、耳朵、毛三部分
.container{
  height:50vh;
  width:50vh;
  left:50%;
  top:50%;
  margin-top:-25vh;
  margin-left:-25vh;
  position:absolute;
}

居中显示

.face
    {
      position: absolute;
      background-color: #f68122;
      width: 70%;
      height: 50%;
      border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
      overflow: hidden;
      left: 15%;
      top: 25%;
}

关键 border-radius 画一个不规则圆

.mouth{
  position: absolute;
  bottom: 5%;
  width: 40%;
  height: 40%;
  background-color: white;
  border-radius: inherit;
  left: 30%;
}

同理嘴部背景也是缩放
lips-top是制作嘴部弯曲的区域限制
两个弯的嘴可以看作是一个白色的正方体纯在底部和右部的border
并且border做了radius,并且做了旋转效果 transform: rotate(6deg);

.lips-top{
  position:absolute;
  top: 50%;
  left: 30%;
  height:28%;
  width: 40%;
 `border-radius: 50% 50%;
  z-index: 2;
}
.lips-top::before{
    content: "";
    position: absolute;
    right: 50%;
    top: 0;
    width: 50%;
    height: 100%;
    background-color: white;
    border-radius: 0 0 50% 30%;
    transform: rotate(6deg);
    border-right: 4px solid  #3d2115;
    border-bottom: 4px solid #3d2115;
}
.lips-top::after{
    content: "";
    position: absolute;
    left:50%;
    width: 50%;
    height: 100%;
    background-color: white;
    border-radius:0 0 30% 50% ;
    transform: rotate(-6deg);
    border-left: 4px solid  #3d2115;
    border-bottom: 4px solid #3d2115;
}

image.png

眉毛是一个长方体,左右白色右边橙色,在白色部分画一个圆向橙色部分偏移50%。橙色部分画一个圆向白色部分偏移50%,旋转椭圆,

.eyebrow{
    position: absolute;
    top: 18%;
    height: 20%;
    width: 16%;
    background: linear-gradient(-90deg, white 50%, #f68122 51%);//线性渐变左边白色右边橙色
    z-index: 1;
    border-radius: 50%;
    transform: rotate(15deg);
      }        
.eyebrow::before, .eyebrow::after
        {
          content: "";
          position: absolute;
          left: 50%;
          top: 0;
          transform: translateX(-50%);
          height: 43%;
          width: 40%;
          background-color: white;
          border-radius: 50%;
        }
.eyebrow::after{
          top: 41%;
          left: 59%;
          background-color: #f68122;
          height: 60%;
          width: 60%;
}
.eyebrow.left{
  left: 31%;
  
}
.eyebrow.right{
  right: 31%;
  background: linear-gradient(-90deg, #f68122 50%, white 51%);
}

脸颊部分白色是cheek的白色阴影效果,box-shadow: -25px 3px 0 8px white;
cheek的内容是棕色椭圆形,棕色椭圆形上面叠加了倾斜的橙色椭圆形,由于脸颊的z-index小于嘴部,倾斜的橙色椭圆形部分在嘴部下面。


image.png
.cheek{
     position: absolute;
    top: 37%;
    height: 70%;
    width: 20%;
    z-index: 0;
    border-radius: 50%;
    background-color: #3d2115;
    
}
.cheek.left{
  left: 18%;
  box-shadow: -25px 3px 0 8px white;
}
.cheek.right{
  right:18%;
  box-shadow: 25px 3px 0 8px white;
}
.cheek::before{
  content: "";
  background-color: #f68122;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  position: absolute;
  transform-origin: top center;
  border: 0px solid transparent;
}
.cheek.left::before{
  top: -2%;
  left: -7%;
  transform: rotate(-15deg);
}
.cheek.right::before{
  top: -2%;
  right: -7%;
  transform: rotate(15deg);
}

2耳朵部分
一个倾斜的长方体内有圆形,圆形border3px白色


image.png

圆形左侧border20%,旋转-45后,skew(20deg, 20deg);2D扭曲

image.png
.ear.left{
    position: absolute;
    height: 25%;
    width: 25%;
    left: 10%;
    top: 25%;
    overflow: hidden;
    transform: translate(-25%, -25%) rotate(-40deg);
    z-index: -1;
  border:1px solid
}
.ear.left::before{
          content: "";
          position: absolute;
          left: 0;
          top: 60%;
          width: 100%;
          height: 100%;
          border: 7px solid white;
          background-color: #3d2115;
          box-sizing: border-box;
          transform: rotate(45deg) skew(20deg, 20deg);
          border-radius: 20% 50% 50% 50%;
}
上一篇下一篇

猜你喜欢

热点阅读