用css以写代码形式画一个皮卡丘

前一阵子在某个大神的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);

  

原文地址:https://www.cnblogs.com/eveningwater/p/8542541.html

时间: 2024-09-29 22:46:11

用css以写代码形式画一个皮卡丘的相关文章

画一个皮卡丘项目小结(3)

前言 继续总结过程中学到的新知识,这是第3部分. 一.设置上下两部分,上方展示代码,下方跟随展示效果 1 设置HTNL结构 <link rel="stylesheet" href="./css/default.css"> /*默认框架样式*/ <style id="styleTag"></style> /*引入跟随展示效果 样式*/ ...... <div class="code-wrapper

画一个皮卡丘项目小结(4)

前言 继续总结过程中学到的新知识,这是第4部分,也是最后一部分. 主要是实现 页面变速展示的 效果 一.创建button按钮 1 HTNL结构 <div class="action"> <button data-speed="slow">慢速</button> <!-- 自定义属性 --> <button data-speed="normal" class="active"

【Matlab微代码】画一个透明的三维球体并在里面显示一个矢量箭头

在天文领域或者其他一些领域,经常要画一些透明的三维球,其中“透明”可以用alpha函数来设置,矢量箭头可以用quiver3函数来实现. t=linspace(0,pi,25); p=linspace(0,2*pi,25); [theta,phi]=meshgrid(t,p); x=5*sin(theta).*sin(phi); y=5*sin(theta).*cos(phi); z=5*cos(theta); surf(x,y,z,'linestyle','none'); axis equal;

写代码的逻辑原则

1.写代码前画流程图,写伪代码,帮助理清思路再着手写代码. 2.写代码时,多抽象,如每个功能拆分一个方法,如数据库操作类抽象的通用些. 3.每一个方法通过输入输出测结果,保证每个方法的正确性和通用性,再调试代码时不再调试此方法. 4.写每段代码要有思考,过脑子,有这样写的道理. 5.遇到每个不懂的点,如果当时没有时间,要记录下来,有时间了研究透,一点一点积累.

如何用C语言画一个圣诞树?

我使用了左右镜像的Sierpinski triangle,每层减去上方一小块,再用符号点缀.可生成不同层数的「圣诞树」,如下图是5层的结果. #include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { int n = argc > 1 ? atoi(argv[1]) : 4; for (int j = 1; j <= n; j++) { int s = 1 << j, k

[歪谈]经理该不该写代码?

这个话题我在好几个地方看到过,基本上大家的意见有几种: 1.小公司别说经理,老板都得写(这是在说我吗?) 2.一般到100或200人以上的公司,经理很少会直接参与代码的编写. 3.大公司(BAT?这个就不说了)一般经理级别以上不写代码 4.还有个观点支持率比较多:那就是要看公司是做产品的还就是做项目的.如果是做项目的一来公司肯定不会大,二来做项目的公司经理和员工一起写代码是很正常的:如果是做产品的,那么除了直系部门的经理会适当写些代码,大部分核心模块. 好吧,我先放出一些自己的观点,然后我们再做

用CSS画一个带阴影的三角形的示例代码

1. 思路 怎么用CSS3画一个带阴影的三角形呢 ? 有童鞋说, 这还不简单吗 网上有很多解决方案, 但其实大多都是实现不太完美的, 存在一些问题 假设我们做一个向下的三角形箭头 常见的方法大致有两种 通过边框控制, border-left和border-right设为透明, border-top设为预定的颜色即可 通过 transform 旋转盒子 方法一可以画三角形, 但是画阴影是很难做到的(如果做到的朋友, 欢迎给我留言) 2. 设计 2.1 边框法 html结构 ? 1 2 3 <bod

看opengl 写代码(4) 画一个圆

opengl 编程指南 P30 下面代码 是 用 直线 连起来 画一个圆. // circle.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <gl/glut.h> #include <cmath> #define LENGTH 100 #define PI 3.1415926 void init(){ glClearColor(0,0,0,0); } void display(){ glColor3f

Effective前端3:用CSS画一个三角形

三角形的场景很常见,打开一个页面可以看到各种各样的三角形: 由于div一般是四边形,要画个三角形并不是那么直观.你可以贴一张png,但是这种办法有点low,或者是用svg的形式,但是太麻烦.三角形其实可以用CSS画出来.如上图提到,可以分为两种三角形,一种是纯色的三角形,第二种是有边框色的三角形,先介绍最简单的纯色三角形. 1. 三角形的画法 三角形可以用border画出来,首先一个有四个border的div应该是这样的: 然后把它的高度和宽度去掉,剩下四个border,就变成了: 再把bord