前一阵子在某个大神的github上看到他用写代码的形式来完成一个皮卡丘,于是心血来潮花了半个小时,也完成了一个作品.
这其中涉及到的知识点也不是很复杂,就主要是css定位的知识居多,然后就是边框属性如何画形状.
在线浏览网址:css画皮卡丘(友情提示:请电脑访问,由于定位属性的问题,手机显示不是很美观!)
然后就是一步步拼凑成的,怎么说呢,按照鼻子,眼睛,脸,嘴以及舌头来画的.
效果截图如下所示:
代码很简单,如下:
html代码:
<div id="code"> <pre id="codeEditor"></pre> </div> <div id="pikachu"> <div class="pikachu_container"> <div class="downlips-container"> <div class="downlips"></div> </div> <div class="nose"></div> <div class="eye eyeLeft"></div> <div class="eye eyeRight"></div> <div class="face faceLeft"></div> <div class="face faceRight"></div> <div class="uplips uplipsLeft"></div> <div class="uplips uplipsRight"></div> </div> </div>
css代码:
*{ margin: 0; padding: 0; } #code { width: calc(48% - 10px); height: 100%; border: 1px solid rgb(94, 90, 90); position: absolute; left: 0; top: 0; } #code pre{ width: 100%; height: 100%; display: inline-block; overflow: hidden; overflow-y: auto; } #pikachu{ width: calc(50% - 10px); margin-left: 5px; margin-right: 5px; height: 100%; position: absolute; right: 0; top: 0; border: 1px solid #302e2e; } #pikachu .pikachu_container{ width: 100%; height: 100%; position: absolute; top: 0; right: 0; }
js代码:
var code = `
/*
* 首先准备好皮卡丘背景颜色
*/
.pikachu_container{
background: #d3eb4b;
}
/*
* 画皮卡丘鼻子
*/
.nose{
width: 0;
height: 0;
border: 12px solid;
border-left-color: transparent;
border-right-color: transparent;
border-bottom-color: transparent;
border-top-color: #000000;
position: absolute;
left: 50%;
top: 120px;
border-radius: 12px;
margin-left: -9px;
}
/*
* 画皮卡丘眼睛
*/
.eye{
width: 50px;
height: 50px;
border-radius: 50%;
background-color: #2e2e2e;
border: 2px solid #000000;
position: absolute;
left: 50%;
top: 80px;
}
.eyeLeft{
margin-left: -92px;
}
.eyeRight{
margin-left: 44px;
}
/*
* 画皮卡丘眼珠
*/
.eye:before{
content: ‘‘;
width: 25px;
height: 25px;
position: absolute;
background-color: #ffffff;
border-radius: 50%;
top: 2px;
left: 6px;
}
/*
* 画皮卡丘的脸腮
*/
.face{
width: 70px;
height: 70px;
background: rgb(230, 62, 40);
border: 2px solid #000000;
border-radius: 50%;
position: absolute;
top: 180px;
}
.faceLeft{
left: 20px;
}
.faceRight{
right: 20px;
}
/*
* 画皮卡丘嘴唇
* 先画上嘴唇
*/
.uplips{
width: 80px;
height: 20px;
border: 2px solid #000000;
background: #d3eb4b;
position: absolute;
border-top: none;
top: 150px;
}
.uplipsLeft{
right: 50%;
border-bottom-left-radius: 40px 25px;
border-right: none;
transform: rotate(-18deg);
}
.uplipsRight{
left: 50%;
border-left: none;
border-bottom-right-radius: 40px 25px;
transform: rotate(18deg);
}
/*
* 然后画下嘴唇
*/
.downlips-container{
position: absolute;
left: 50%;
top: 160px;
margin-left: -150px;
height: 110px;
width: 300px;
overflow: hidden;
}
.downlips{
width: 300px;
height: 3500px;
background-color: #990513;
border-radius: 200px/2000px;
position: absolute;
bottom: 0;
border: 2px solid #000000;
overflow: hidden;
}
.downlips:after{
content:‘‘;
width: 100px;
height: 100px;
position: absolute;
background: #fc4a62;
border-radius: 50%;
left: 50%;
margin-left: -50px;
bottom: -20px;
}`;
function writeCode(str){
var n = 0;
var timer = setInterval(function(){
n++;
document.getElementById(‘codeEditor‘).innerHTML = str.substring(0,n);
document.getElementById(‘styleEditor‘).innerHTML = str.substring(0,n);
},100);
if(n > str.length - 1){
clearInterval(timer);
}
}
writeCode(code);