效果预览

在线演示

按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。

https://codepen.io/comehope/pen/vaoQqa

可交互视频

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/p/pEgDAM/cag9wfw

源代码下载

本地下载

每日前端实战系列的全部源代码请从 github 下载:

https://github.com/comehope/front-end-daily-challenges

代码解读

定义 dom,容器中包含的元素分别代表


<div class="black-bomb"><span class="head"></span><span class="eyes"></span><span class="eyebrows"></span><span class="mouth"></span><span class="hair"></span>
</div>

居中显示:


body {margin: 0;height: 100vh;display: flex;align-items: center;justify-content: center;background-color: turquoise;
}

定义容器尺寸和伪元素的共同属性:


.black-bomb {width: 13em;height: 13em;font-size: 16px;
}.black-bomb *::before,
.black-bomb *::after {content: '';position: absolute;
}

画出头部轮廓:


.black-bomb {position: relative;
}.head {position: absolute;width: inherit;height: inherit;background-color: #0f1110;border-radius: 45% 55% 45% 55% / 55% 50% 50% 45%;
}

用伪元素画出眼睛的轮廓:


.eyes::before,
.eyes::after {width: 3.4em;height: 3.4em;background-color: #4e4e4e;border-radius: 50%;
}.eyes::before {top: 2.7em;left: 21%;
}.eyes::after {top: 2.5em;right: 7%;
}

用径向渐变画出眼球和瞳孔:


.eyes::before,
.eyes::after {background-image: radial-gradient(circle at var(--left3) 1.7em,white 0.1em,transparent 0.1em),radial-gradient(circle at var(--left2) 1.6em,black 0.6em,transparent 0.6em),radial-gradient(circle at var(--left1) 1.4em,white 1em,transparent 1em);
}.eyes::before {--left1: 2em;--left2: 2.3em;--left3: 2.4em;
}.eyes::after {--left1: 1.2em;--left2: 0.9em;--left3: 0.8em;
}

用伪元素画出眉毛:


.eyebrows::before,
.eyebrows::after {width: 5.3em;height: 0.8em;background: #cb3c1a;
}.eyebrows::before {top: 2.3em;left: 1em;transform: rotate(10deg);
}.eyebrows::after {top: 2.2em;right: -0.6em;transform: rotate(-10deg);
}

画出嘴的轮廓:


.mouth {position: absolute;width: 3.6em;height: 3.6em;background-color: #fca90d;top: 4em;left: 6.4em;border-radius: 80% 0 30% 20%;transform: rotate(34deg);border: 0.1em solid black;
}

用伪元素画出上下颌的分界线:


.mouth::before {width: 2.6em;height: 5.7em;border: 0.2em solid;border-radius: 80% 0 0 16%;transform: rotate(35deg);top: -1.1em;left: 1.4em;border-color: transparent transparent transparent black;
}

画出胸前的羽毛:


.head {overflow: hidden;
}.head::before {width: inherit;height: inherit;background-color: #474642;border-radius: inherit;top: 76%;left: 12%;
}

画出冠羽:


.hair {position: absolute;width: 1.4em;height: 5em;background-color: #0f1110;top: -3.8em;left: 20%;border-radius: 0 0 40% 40% / 0 0 100% 100%;
}.hair::before {width: 80%;height: 1em;background-color: #ffc000;top: 0.3em;left: 10%;
}

调整冠羽的形状:


.hair {transform: rotate(-28deg) skewX(10deg) skewY(-50deg);
}

接下来画阴影,增强立体感。

为头部增加阴影:


.head {box-shadow: inset -1em 0.5em 1.5em -0.5em rgba(255, 255, 255, 0.3);
}.head::after {width: inherit;height: inherit;border-radius: inherit;box-shadow: inset 0.5em -0.5em 0.3em 0.2em rgba(0, 0, 0, 0.2);
}

为嘴增加阴影:


.mouth {box-shadow: inset 0 0.5em 0.5em rgba(255, 255, 255, 0.3),inset 0.2em -0.5em 1.2em rgba(0, 0, 0, 0.5);
}

大功告成!

原文地址:https://segmentfault.com/a/1190000016057308

如何用纯 CSS 创作一只愤怒小鸟中的黑炮相关推荐

  1. 如何用纯 CSS 创作一只愤怒小鸟中的绿猪

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/VBGWqX 可交互视频 ...

  2. 前端每日实战:62# 视频演示如何用纯 CSS 创作一只蒸锅

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/YvOzNy 可交互视频 此视频是可 ...

  3. 前端每日实战:73# 视频演示如何用纯 CSS 创作一只卡通狐狸

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/OEKZed 可交互视频 此视频是可 ...

  4. 如何用纯 CSS 创作一只卡通鹦鹉

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/vrRmWy 可交互视频 ...

  5. 如何用纯 CSS 创作一只徘徊的果冻怪兽

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/VdOKQG 可交互视频 ...

  6. 如何用纯 CSS 创作一只单眼怪兽

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/pZXzaY 可交互视频 ...

  7. 如何用纯 CSS 创作一个小球上台阶的动画

    如何用纯 CSS 创作一个小球上台阶的动画 效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/come ...

  8. 73.纯 CSS 创作一只卡通狐狸

    73.纯 CSS 创作一只卡通狐狸 原文地址:https://segmentfault.com/a/1190000015566332 学习效果地址:https://scrimba.com/c/cz6E ...

  9. 如何用纯 CSS 创作一个同心圆弧旋转 loader 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/OZmXQX 可交互视频教程 此视 ...

最新文章

  1. 我在亦庄见了说中文的爱因斯坦,会比心的熊猫,还有一场意念打字大赛
  2. 山体等高线怎么看_地貌图知识(学了军事地图也会看)定向运动及野外生存入门技巧4...
  3. RocketMQ控制台安装教程
  4. sql Server snapshots
  5. 系统架构师学习笔记-数据库系统
  6. Socket编程实践(7) --Socket-Class封装(改进版v2)
  7. 阿里终面:如何设计一个高性能网关?
  8. system权限运行cmd
  9. [AutoSar]开发工具 Vector系列和EB系列
  10. PADS2007pads9.2使用技巧
  11. leaflet地图原理_leaflet在线地图简介
  12. 计算机投针实验程序,蒲丰投针问题
  13. UVa 437 The Tower of Babylon (DAG最长路)
  14. win7系统盘瘦身秘诀
  15. 阿里云云平台,物联网可视化web界面简单教程
  16. unity 陶瓷质感_一种基于Unity3D的虚拟陶瓷设计方法与流程
  17. 《心流:最优体验心理学》读书笔记
  18. LeetCode 362. 敲击计数器
  19. 腾讯视频的地址解析下载
  20. ise 时钟约束_ISE 约束文件完整讲解

热门文章

  1. 计算机视觉常用数据集总结:包括MS COCO、ImageNet、VOC、人脸识别、行人检测等...
  2. docker mysql容器启动不_Mysql容器启动失败-解决方案
  3. SAP QM 事务代码QAC2的BUG?
  4. 六月份收集到比较有营养价值的AI方面的文章
  5. 在推荐系统中,我还有隐私吗?联邦学习:你可以有
  6. “神经+符号”:从知识图谱角度看认知推理的发展
  7. SAP BD87将IDoc状态修改为68 ?
  8. 性能超过人类炼丹师,AutoGluon 低调开源
  9. 腾讯开源框架Angel推出3.0版本:全栈机器学习平台
  10. SAP MM 物料主数据MRP2 视图’Minimum Lot Size’字段