效果预览

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

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

可交互视频

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

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

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

源代码下载

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

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

代码解读

定义 dom,容器中包含 3 个元素,分别代表耳朵、眼睛、鼻子:

<div class="pig"><span class="ears"></span><span class="eyes"></span><span class="nose"></span>
</div>

居中显示:

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

设置伪元素的共有属性,后面有多处用到伪元素:

.pig::before,
.pig::after,
.pig *::before,
.pig *::after {content: '';position: absolute;
}

定义容器尺寸:

.pig {width: 12em;height: 10em;font-size: 20px;background-color: #50a032;border: 0.2em solid #2b4d13;
}

用圆角属性画出头部轮廓:

.pig {border-radius: 50% 50% 50% 50% / 55% 60% 40% 45%;
}

画出鼻子的轮廓:

.pig {position: relative;
}.nose {position: absolute;width: 4.6em;height: 4em;background-color: #82b923;border: 0.1em solid #1d3c07;border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;top: 3em;left: 4.2em;
}

用伪元素画出鼻孔:

.nose::before,
.nose::after {width: 1.2em;background-color: #0f2d00;border-radius: 50%;top: 1.4em;
}.nose::before {left: 0.8em;height: 1.8em;
}.nose::after {right: 0.8em;height: 1.6em;
}

画出眼睛的轮廓:

.eyes::before,
.eyes::after {width: 2.8em;height: 2.8em;background: white;border-radius: 50%;border: 0.1em solid #193c09;top: 3.6em;
}.eyes::before {left: 0.8em;
}.eyes::after {right: 0.3em;
}

用径向渐变画出眼珠:

.eyes::before,
.eyes::after {background: radial-gradient(circle at var(--eyeball-left) 1.5em,black 0.4em,transparent 0.4em),white;
}.eyes::before {--eyeball-left: 1em;
}.eyes::after {--eyeball-left: 1.9em;
}

画出内耳的轮廓:

.ears::before,
.ears::after {width: 0.8em;height: 0.9em;background-color: #2f6317;border: 0.1em solid #1d3a0d;border-radius: 45% 45% 45% 45% / 55% 45% 55% 45%;
}.ears::before {top: 0.3em;left: 1.3em;
}.ears::after {top: -1.1em;right: 5.8em;
}

用阴影画出外耳:

.ears::before {color: #50a032;box-shadow: 0.4em 0.7em 0 -0.2em,-0.2em 0.7em 0 -0.1em,-0.6em 0.5em 0 -0.2em,-0.1em -0.2em 0 0.4em,-0.1em -0.2em 0 0.6em #2b4d13;transform: rotate(-40deg);
}.ears::after {color: #5cb739;box-shadow: 0.3em 0.6em 0 -0.2em,-0.1em 0.6em 0 -0.1em,-0.6em 0.6em 0 -0.2em,-0.1em -0.2em 0 0.4em,-0.1em -0.2em 0 0.6em #2b4d13;transform: rotate(-6deg);
}

用伪元素画出眉毛:

.pig::before,
.pig::after {width: 1.4em;height: 1em;border-top: 0.5em solid #0f2d00;top: 2.3em;border-radius: 50% 50% 0 0 / 40% 40% 0 0;
}.pig::before {left: 1.2em;transform: rotate(-20deg);
}.pig::after {right: 1em;transform: rotate(25deg);
}

接下来设置阴影,增加立体效果。
为头部增加阴影效果:

.pig {box-shadow: inset -1.5em 1em 1.5em -0.5em rgba(255, 255, 255, 0.3),inset 0.5em -0.5em 0.8em 0.2em rgba(0, 0, 0, 0.2);
}

为鼻子增加阴影效果:

.nose {box-shadow: -0.1em 0.5em 0.2em 0.1em rgba(68, 132, 36, 0.6);
}.nose::before,
.nose::after {box-shadow: inset -0.3em -0.2em 0.1em -0.1em #2d6b1f;
}

为眼睛增加阴影效果:

.eyes::before,
.eyes::after {box-shadow: inset 0.3em -0.6em 0.5em -0.2em rgba(0, 0, 0, 0.3),-0.1em 0.5em 0.2em 0.1em rgba(68, 132, 36, 0.6);
}

大功告成!

前端每日实战:98# 视频演示如何用纯 CSS 创作一只愤怒小鸟中的绿猪相关推荐

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

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

  2. 如何用纯 CSS 创作一只愤怒小鸟中的黑炮

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

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

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

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

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

  5. 前端每日实战:93# 视频演示如何用纯 CSS 创作一根闪电连接线

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

  6. 前端每日实战:45# 视频演示如何用纯 CSS 创作一个菱形 loader 动画

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

  7. 前端每日实战:100# 视频演示如何用纯 CSS 创作闪闪发光的霓虹灯文字

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

  8. 前端每日实战:60# 视频演示如何用纯 CSS 创作一块乐高积木

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

  9. 前端每日实战:140# 视频演示如何用纯 CSS 创作文本的淡入动画效果

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

  10. 前端每日实战:34# 视频演示如何用纯 CSS 创作在文本前后穿梭的边框

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

最新文章

  1. [禅悟人生]越忙的人时间越多
  2. 我的android studio
  3. 001——数组(一)数组知识及foreach函数应用
  4. c++17进阶(3)-Boehm GC垃圾回收(1)
  5. web性能测试分析-工具篇 (转载)
  6. C和指针之指针数组和指向数组的指针
  7. centos mysql 互为主从_centos7 mysql互为主从+keepalived
  8. stb_image 读写
  9. vim常用操作技巧与配置
  10. python从入门到精通 明日科技 电子书-Python从入门到精通(明日科技出版) 源代码+课件+视频 全套...
  11. 启用文件系统缓存,提高Tuxera NTFS运作性能
  12. python基础篇--从零开始(中)PyCharm、Vscode安装。
  13. 【在大学的快乐生活】锐捷校园网无感认证通过路由器mac地址克隆实现一账号多终端
  14. libcurl入门之相关接口函数curl_easy_getinfo
  15. 信安知识竞赛培训笔记
  16. 标签云打印/微信小程序蓝牙标签打印开放平台功能
  17. WebGL简易教程——目录
  18. 想天浏览器:推荐国内主流浏览器TOP10
  19. 新车提车验车步骤和细节
  20. C. Chocolate Bunny(思维)

热门文章

  1. gan loss gan_我的GAN怎么了?
  2. 语义分割空间上下文关系_多尺度空间注意的语义分割
  3. update mysql.user set password_修改mysql密码
  4. 关于卷积,池化,前向传播,反向传播,全连接层,通道数的一些概念
  5. 顶级数据团队建设全景报告_从蚂蚁金服的BI和大数据团队建设,看透BI发展,再不懂就落伍了...
  6. MyBatis 3.5.1 发布,Java 数据持久层框架
  7. PHP常用系统设置整理
  8. Sqoop 是什么?(二)
  9. 【Linux】自主实现my_sleep【转】
  10. UIImageView只显示一半