• 博主:孽 (云趣科技)
  • QQ:点击这里给我发消息
  • 微信:dylanv
  • 业务:切图,建站,二开,运维
AD
【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
文章目录

我用CSS绘制冰墩墩送给你 前端人切图仔才懂的浪漫

我用CSS绘制冰墩墩送给你 前端人切图仔才懂的浪漫
稿件作者 CMS博客 2022-03-03 09:28 前端笔记 2258
AD
广告位联系客服QQ:9029855

用css画了一个冰墩墩,其实html结构很简单,主要是在css上下功夫,用得最多的是伪类,圆角,定位。如果有兴趣的同学,可以尝试着自己画一个,如果再用到css3动画,还有css3颜色渐变,让冰墩墩动起来,效果会更好哦。

实现思路

1.先画出一个大圆,并设置相应的border-radius。
2.画出两个椭圆样式的耳朵,基于大圆absolute定位,z-index:-1,基于大圆底部。
3.用box-shadow制作出彩色的脸框。
4.基于彩色的脸框,absolute定位两个椭圆式的眼框,眼睛用两个伪元素实现(两个圆)。
5.利用伪元素等实现鼻子和嘴巴。
6.腿和手两两对应,定位在大圆相应的位置。

8b13632762d0f703a199f4ecc0f4b0342697c5eb.jpeg

HTML

<div class="m_body"></div>
<div class="ear1"></div>
<div class="ear2"></div>
<div class="eye1"></div>
<div class="eye2"></div>
<div class="face c_blue"></div>
<div class="face c_red"></div>
<div class="face c_purple"></div>
<div class="face c_yellow"></div>
<div class="face c_green"></div>
<div class="nose"></div>
<div class="mouse"></div>
<div class="arm1"></div>
<div class="arm2"></div>
<div class="leg1"></div>
<div class="leg2"></div>

CSS

* {
    margin: 0;
    padding: 0
}

body {
    font: 15px "Microsoft YaHei", Arial, Helvetica, sans-serif;
    background: #d4ebf1;
    color: #000;
}

.m_body {
    width: 362px;
    height: 410px;
    border: #393939 8px solid;
    margin: 50px auto;
    border-radius: 88% 88% 62% 68% / 82% 82% 95% 84%;
    position: absolute;
    left: 109px;
    top: -30px;
    background: #fff;
}

.ear1, .ear2 {
    background: #393939;
    width: 81px;
    height: 115px;
    border-radius: 50%;
    position: absolute;
    z-index: -1;
}

.ear1 {
    left: 150px;
    top: 26px;
    transform: rotate(-10deg);
}

.ear2 {
    left: 362px;
    top: 28px;
    transform: rotate(10deg);
}

.eye1, .eye2 {
    background: #393939;
    width: 83px;
    height: 115px;
    border-radius: 50%;
    position: absolute;
}

.eye1 {
    left: 185px;
    top: 122px;
    transform: rotate(45deg);
}

.eye2 {
    left: 329px;
    top: 122px;
    transform: rotate(-45deg);
}

.eye1:before, .eye2:before {
    content: "";
    width: 40px;
    height: 40px;
    border: #fff 5px solid;
    border-radius: 100%;
    position: absolute;
}

.eye1:before {
    right: 10px;
    top: 22px;
}

.eye2:before {
    left: 10px;
    top: 22px;
}

.eye1:after, .eye2:after {
    content: "";
    width: 10px;
    height: 10px;
    background: #9b9b9b;
    border-radius: 100%;
    position: absolute;
}

.eye1:after {
    right: 27px;
    top: 31px;
}

.eye2:after {
    left: 41px;
    top: 44px;
}

.face {
    position: absolute;
    border-radius: 48% 48% 44% 49%/ 53% 54% 45% 47%;
}

.c_blue {
    border: #6bcdf3 5px solid;
    width: 280px;
    height: 224px;
    left: 150px;
    top: 78px;
}

.c_red {
    border: #af2350 5px solid;
    width: 287px;
    height: 233px;
    left: 146px;
    top: 73px;
}

.c_purple {
    border: #5d75b3 5px solid;
    width: 295px;
    height: 240px;
    left: 142px;
    top: 70px;
}

.c_yellow {
    border: #ffc346 5px solid;
    width: 305px;
    height: 248px;
    left: 137px;
    top: 65px;
}

.c_green {
    border: #7fcb58 5px solid;
    width: 313px;
    height: 256px;
    left: 133px;
    top: 61px;
}

.arm1, .arm2 {
    background: #333;
    position: absolute;
    z-index: -1;
}

.arm1 {
    width: 75px;
    height: 118px;
    left: 64px;
    top: 244px;
    transform: rotate(45deg);
    border-radius: 24% 69% 68% 76%/ 53% 95% 40% 52%;
}

.arm2 {
    width: 75px;
    height: 148px;
    left: 463px;
    top: 162px;
    transform: rotate(37deg);
    border-radius: 56% 62% 98% 6%/ 40% 46% 80% 58%;
}

.arm2:before {
    content: "";
    width: 16px;
    height: 24px;
    background: #bc242c;
    position: absolute;
    border-top-left-radius: 50%;
    border-top-right-radius: 50%;
    transform: rotate(45deg);
    left: 32px;
    top: 20px;
}

.arm2:after {
    content: "";
    width: 16px;
    height: 24px;
    background: #bc242c;
    position: absolute;
    border-top-left-radius: 50%;
    border-top-right-radius: 50%;
    transform: rotate(-45deg);
    left: 26px;
    top: 20px;
}

.arm_c {
    content: "";
    width: 16px;
    height: 24px;
    position: absolute;
    left: 426px;
    top: 20px;
}

.nose {
    background-color: #333333;
}

.nose:before, .nose:after {
    content: '';
    position: absolute;
    background-color: inherit;
}

.nose, .nose:before, .nose:after {
    width: 28px;
    height: 18px;
    border-radius: 42px 42px 60px 61px/ 30px 30px 50px 46px;
}

.nose {
    position: absolute;
    left: 284px;
    top: 187px;
}

.mouse {
    position: absolute;
    left: 265px;
    top: 205px;
    width: 68px;
    height: 25px;
    border-radius: 48%;
    border: #393939 7px solid;
    border-top: none;
    border-left: 0;
    border-right: 0;
}

.leg1, .leg2 {
    background: #333;
    position: absolute;
    width: 83px;
    height: 80px;
    border-radius: 0 0 30px 30px;
    z-index: -1;
}

.leg1 {
    left: 187px;
    top: 423px;
}

.leg2 {
    left: 328px;
    top: 423px;
}

.leg1:after, .leg2:after {
    content: "";
    width: 43px;
    height: 30px;
    position: absolute;
    background: #363636;
    border-radius: 30px;
}

.leg1:after {
    bottom: 0;
    right: -3px;
}

.leg2:after {
    bottom: 0;
    left: -3px;
}

JS

<script  src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
<script>
    $(".ear1, .ear2").on('click', function () {
        $(".ear1, .ear2").css('transform','none');
        setTimeout(function () {
            $(".ear1").css('transform','rotate(-10deg)');
            $(".ear2").css('transform','rotate(10deg)');
        },100)
    })
</script>

最后附上CSS大佬的传送门:https://gitee.com/susuhhhhhh/css_demos


联系客服

请使用QQ扫码
请使用微信扫码
回复时间:工作日下午4点30以后;周六周日不限。
  • 分享:

文章评论(审核通过可见)

说点什么
共有0条评论