效果预览

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

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

可交互视频

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

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

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

源代码下载

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

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

代码解读

定义 dom,容器中包含 5 个元素,分别代表机体、按钮、支腿、手柄和面包。

  1. <div class="toaster">
  2. <div class="body"></div>
  3. <div class="button"></div>
  4. <div class="legs"></div>
  5. <div class="handle"></div>
  6. <div class="toast"></div>
  7. </div>

居中显示:

  1. body {
  2. margin: 0;
  3. height: 100vh;
  4. display: flex;
  5. align-items: center;
  6. justify-content: center;
  7. background: linear-gradient(to right bottom, moccasin, teal);
  8. }

定义容器尺寸:

  1. .toaster {
  2. width: 30em;
  3. height: 30em;
  4. background-color: snow;
  5. font-size: 10px;
  6. border-radius: 50%;
  7. }

画出机体:

  1. .toaster {
  2. position: relative;
  3. }
  4. .body {
  5. width: 16em;
  6. height: 14em;
  7. background-color: seagreen;
  8. position: absolute;
  9. top: 10em;
  10. left: 6em;
  11. border-radius: 2.5em;
  12. border-right: 1.5em solid darkgreen;
  13. }

画出按钮:

  1. .button {
  2. width: 2.5em;
  3. height: 2.5em;
  4. background-color: tomato;
  5. position: absolute;
  6. top: 13em;
  7. left: 16em;
  8. border-radius: 50%;
  9. }

画出支腿:

  1. .legs::before,
  2. .legs::after {
  3. content: '';
  4. position: absolute;
  5. width: 1.5em;
  6. height: 2em;
  7. background: tomato;
  8. top: 24em;
  9. }
  10. .legs::before {
  11. left: 9em;
  12. }
  13. .legs::after {
  14. right: 10em;
  15. }

画出手柄:

  1. .handle {
  2. width: 4.2em;
  3. height: 1.8em;
  4. background-color: tomato;
  5. position: absolute;
  6. top: 12em;
  7. right: 2.4em;
  8. border-radius: 0 0.6em 0.6em 0;
  9. }

画出面包:

  1. .toaster {
  2. z-index: 1;
  3. }
  4. .toast {
  5. width: 9em;
  6. height: 6em;
  7. background-color: gold;
  8. position: absolute;
  9. top: 4em;
  10. left: 10em;
  11. border-radius: 2em 2em 0 0;
  12. border-right: 0.6em solid goldenrod;
  13. z-index: -1;
  14. }

为机体增加一些光影:

  1. .body::before,
  2. .body::after {
  3. content: '';
  4. position: absolute;
  5. width: 5em;
  6. height: 5em;
  7. border: 0.6em solid transparent;
  8. border-radius: 50%;
  9. border-left-color: white;
  10. }
  11. .body::before {
  12. transform: rotate(40deg);
  13. top: 1em;
  14. left: 1em;
  15. }
  16. .body::after {
  17. bottom: 1em;
  18. right: 1em;
  19. transform: rotate(210deg);
  20. }

定义动画效果:

  1. @keyframes bake {
  2. 0%, 20% {
  3. transform: translateY(0);
  4. }
  5. 80%, 100% {
  6. transform: translateY(6em);
  7. }
  8. }

最后,把动画效果应用到手柄和面包上:

  1. .handle {
  2. animation: bake 3s infinite alternate;
  3. }
  4. .toast {
  5. animation: bake 3s infinite alternate;
  6. }

大功告成!

前端每日实战:63# 视频演示如何用纯 CSS 创作一台烤面包机的更多相关文章

  1. 前端每日实战:66# 视频演示如何用纯 CSS 创作一台咖啡机

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

  2. 前端每日实战:94# 视频演示如何用纯 CSS 创作一台拍立得照相机

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

  3. 前端每日实战:74# 视频演示如何用纯 CSS 创作一台 MacBook Pro

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

  4. 前端每日实战:92# 视频演示如何用纯 CSS 创作一颗逼真的土星

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

  5. 前端每日实战:157# 视频演示如何用纯 CSS 创作一个棋盘错觉动画(实际上每一行都是平行的)

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

  6. 前端每日实战:158# 视频演示如何用纯 CSS 创作一个雨伞 toggle 控件

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

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

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

  8. 前端每日实战:161# 视频演示如何用纯 CSS 创作一张纪念卓别林的卡片(没有笑声的一天就是被荒废的一天)

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

  9. 前端每日实战:122# 视频演示如何用纯 CSS 创作一个苹果系统的相册图标

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

随机推荐

  1. [CSP-S模拟测试]:数字(数学+高精度)

    题目描述 很简单,给出正整数$n$,求出$n!$在十进制表示下的从最末非零位开始的总共$k$位. 输入格式 第一行一个正整数$T$,表示有$T$组数据接下来$T$行,每行两个正整数$n$和$k$. 输 ...

  2. DOM疑惑点整理(三)

    innerHTML和outerHTML 先说一个几乎众所周知的,innerHTML和outerHTML中的内容都会被解析为DOM子树,其二就是, <div id="txt" ...

  3. 洛谷P1288 取数游戏II(博弈)

    洛谷P1288 取数游戏II 先手必胜的条件需要满足如下中至少 \(1\) 条: 从初始位置向左走到第一个 \(0\) 的位置,经过边的数目为偶数(包含 \(0\) 这条边). 从初始位置向右走到第一 ...

  4. Log4j log for java(java的日志) 的使用

    log4j的使用,Log4j log for java(java的日志) 是java主流的日志框架,提供各种类型,各种存储,各种格式,多样化的日志服务. 可以再Apache官网下载得到. 我们下载lo ...

  5. SQLiteDatabase 数据库使用

    0 SQLiteDatabases数据库特点 一种切入式关系型数据库,支持事务,可使用SQL语言,独立,无需服务.程序内通过类名可访问数据库,程序外不可以访问. SQLiteDatabases数据库使 ...

  6. sysbench - 数据库功能及性能测试工具

    sysbench 的 GitHub 参考资料 1.0 之后的版本使用方法跟之前的有所区别,下面所有内容基于 1.0.9 版本. 另外,为了方便管理测试,最好不要通过命令直接运行测试,而是写成脚本自动化 ...

  7. note3

    awk awk “样式” 文件: 把符合样式的数据行显示出来.awk { 操作 } 文件: 对每一行都执行{}中的操作.awk " 样式 { 操作 }" 文件: 对符合样式的数据行 ...

  8. Tomcat各个版本的下载地址包括源码

    Tomcat各个版本的下载地址包括源码: http://archive.apache.org/dist/tomcat **************** 选择版本 **************** ** ...

  9. MapReduce(1): Prepare input for Mappers

    According to Wikipedia MapReduce, there are two ways to illustrate MapReduce. One contains three ste ...

  10. 5G网络的深度强化学习:联合波束成形,功率控制和干扰协调

    摘要:第五代无线通信(5G)支持大幅增加流量和数据速率,并提高语音呼叫的可靠性.在5G无线网络中共同优化波束成形,功率控制和干扰协调以增强最终用户的通信性能是一项重大挑战.在本文中,我们制定波束形成, ...