springboot 皮卡丘图案的banner怎么弄 皮卡丘海报怎么画_CSS

引言

不知道大家有没有去看大侦探皮卡丘呀,有没有被银幕上毛茸茸的电老鼠萌到呢?现在我就来教大家用CSS画一只简易版的皮卡丘吧,小白可学。(希望不会收到东半球最强法务部的律师函)

ps:以下部分代码隐去具体的宽高和位置,具体代码在阅读原文可看。

废话不多说,让我们打开编辑器



html对应结构如下:



springboot 皮卡丘图案的banner怎么弄 皮卡丘海报怎么画_Web_02

我们分开来看,首先是最简单的眼睛和腮红(电极),只有两个圆,只要让border-radius属性和width、height相同就可以画出两个圆,再用定位属性去寻找位置。

/*画出圆*/
.eye{
    background: #4E4700;
    width: 23px;
    height: 23px;
    border-radius: 23px;
}
/*寻找位置*/
.eye.left{
    position: absolute;
    left:38px;
    top:44px;
}

因为CSS的border-radius属性设置元素的外边框圆角,使用一个直径来确定一个圆形。当元素四个边角都是四分之一圆弧,那就可以拼成一个圆。



springboot 皮卡丘图案的banner怎么弄 皮卡丘海报怎么画_CSS_03

然后就是下半截的各类半圆形的球,扣子。半圆怎么画呢,上面的圆通过四个四分之一圆弧来画,半圆岂不只要两个?

没错,当border-radius属性有四个值的时候,就会按左上、右上、右下、左下的顺时针方向去指定四个角。我们让上面的两个都是0,下面的都是圆的直径,再让高度等于半径,就可以画出一个半圆啦。

.ball{
    border-radius:0 0 200px 200px;
    width:200px;
    height:100px;
    background:#FF0000;
}



springboot 皮卡丘图案的banner怎么弄 皮卡丘海报怎么画_Web_04

其他的以此类推,把精灵球的扣子也做出来,再用z-index来让他们按层次出现就好啦,代码如下:

.belt{
    /*画黑带*/
    background:#322221;
    border-radius:0 0 2px 2px/0 0 15px 15px;
    display: flex;
    justify-content: center;
}
.lock{
    /*画半圆*/
    border-radius: 0 0 80px 80px;
}
.lock::after{
    /*使用伪元素可以在css里添加代码而不影响HTML结构的可读性*/
    content: "";
    display:block;
    border-radius: 0 0 60px 60px;
    background:#FDFDFD;
    transform: translateX(10px); -webkit-transform: translateX(10px); -moz-transform: translateX(10px); -o-transform: translateX(10px);
}

/*剩下的两个半圆方法差不多就不赘述了*/



springboot 皮卡丘图案的banner怎么弄 皮卡丘海报怎么画_顺时针_05

剩下的部分就有点棘手了,因为耳朵和嘴巴弧线部分比较多,不过我们把弧线看作椭圆的边的话,也是可以利用border-radius属性来解决。当我们使用两组值的时候就可以设置边框的弧度。形如

border-radius: 20px 20px 20px 20px /
                       70px 70px 20px 20px;

斜杠前面的四个值,分别是左上起顺时针一圈的x,后面的四个值就是对应的y,这样就可以调整元素画出大概的弧度。



springboot 皮卡丘图案的banner怎么弄 皮卡丘海报怎么画_顺时针_06

.ear.left{
    background: #ffe000;
    width:40px;
    height:90px;
  border-radius: 20px 20px 20px 20px/70px 70px 20px 20px;
    /*隐藏耳朵尖溢出部分*/
    overflow: hidden;
}

画出的效果是这样的



springboot 皮卡丘图案的banner怎么弄 皮卡丘海报怎么画_CSS_07

然后给他加个after伪元素来画耳朵尖

.ear.left::after{
    content: "";
    display: block;
    width:30px;
    height:20px;
    background: #4E4700;
}

就变成这样



springboot 皮卡丘图案的banner怎么弄 皮卡丘海报怎么画_顺时针_08

然后使用transform来给原来的 .ear.left 旋转一个角度就完成了,rotate是旋转,deg指角度的单位,负号代表逆时针选择。

rotate(-30deg); -webkit-transform: >rotate(-30deg); -moz-transform: >rotate(-30deg); -o-transform: >rotate(-30deg);



springboot 皮卡丘图案的banner怎么弄 皮卡丘海报怎么画_顺时针_09

然后嘴巴也是大同小异,左半唇和右半唇分别是一个只有左下和右下角的元素,旋转之后使用绝对定位拼在一起就可以啦。



springboot 皮卡丘图案的banner怎么弄 皮卡丘海报怎么画_Web_10

高光部分画个白色椭圆,方法就是把上面涉及的综合一下。

.light{

    background:#FFD7C9;

    width: 20px;

    height: 27px;

    border-radius: 10px 10px 10px 10px/15px 15px 10px 10px;

    transform: rotate(45deg); -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -o-transform: rotate(45deg);

}

接下来就大功告成。



springboot 皮卡丘图案的banner怎么弄 皮卡丘海报怎么画_Web_11