文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么用纯CSS实现大白的形象

2024-04-02 19:55

关注

这篇文章给大家分享的是有关怎么用纯CSS实现大白的形象的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

  代码解读

  整个人物分为3部分:头、身体、腿,下面按照这个顺序分别画出,先画头部。

  定义dom,容器.baymax表示大白,head表示头部:

  <divclass="baymax">

  <divclass="head">

  <divclass="eyes"></div>

  </div>

  </div>

  居中显示:

  body{

  margin:0;

  height:100vh;

  display:flex;

  align-items:center;

  justify-content:center;

  background-color:rgba(176,0,0,0.75);

  }

  定义容器尺寸和子元素对齐方式:

  .baymax{

  width:30em;

  height:41em;

  font-size:10px;

  display:flex;

  justify-content:center;

  position:relative;

  }

  画出头部轮廓:

  .head{

  position:absolute;

  width:9em;

  height:6em;

  background-color:white;

  border-radius:50%;

  box-shadow:

  inset0-1.5em3emrgba(0,0,0,0.2),

  00.5em1.5emrgba(0,0,0,0.2);

  }

  画出双眼中间的线条:

  .head.eyes{

  position:absolute;

  width:4.8em;

  height:0.1em;

  background-color:#222;

  top:2.3em;

  left:calc((9em-4.8em)/2);

  }

  画出双眼:

  .head.eyes::before,

  .head.eyes::after{

  content:'';

  position:absolute;

  width:0.8em;

  height:0.9em;

  background-color:#222;

  border-radius:50%;

  top:-0.3em;

  }

  .head.eyes::after{

  right:0;

  }

  接下来画身体。

  html文件中增加身体的dom元素:

  <divclass="baymax">

  <divclass="head">

  <!--略-->

  </div>

  <divclass="body">

  <divclass="chest">

  <spanclass="button"></span>

  </div>

  <divclass="belly"></div>

  <divclass="leftarm">

  <divclass="fingers"></div>

  </div>

  <divclass="rightarm">

  <divclass="fingers"></div>

  </div>

  </div>

  </div>

  定义身体的宽度:

  .body{

  position:absolute;

  width:inherit;

  }

  画出胸部:

  .body.chest{

  position:absolute;

  width:19em;

  height:26em;

  background-color:white;

  top:4em;

  left:calc((100%-19em)/2);

  border-radius:50%;

  z-index:-1;

  }

  画出胸前的按钮:

  .body.chest.button{

  position:absolute;

  width:2em;

  height:2em;

  background-color:white;

  border-radius:50%;

  top:4em;

  right:4em;

  box-shadow:

  inset0-0.5em0.8emrgba(0,0,0,0.15),

  0.2em0.3em0.2emrgba(0,0,0,0.05);

  filter:opacity(0.75);

  }

  画出肚皮:

  .body.belly{

  position:absolute;

  width:24em;

  height:31em;

  background-color:white;

  top:5.5em;

  left:calc((100%-24em)/2);

  border-radius:50%;

  z-index:-2;

  box-shadow:

  inset0-2.5em4emrgba(0,0,0,0.15),

  00.5em1.5emrgba(0,0,0,0.25);

  }

  定义胳膊的高度起点:

  .body.arm{

  position:absolute;

  top:7.5em;

  }

  胳膊分为肘以上的部分和肘以下的部分。

  先设计这两段的共有属性:

  .body.arm::before,

  .body.arm::after{

  content:'';

  position:absolute;

  background-color:white;

  border-radius:50%;

  transform-origin:top;

  z-index:-3;

  }

  再用伪元素分别画出这两部分:

  .body.arm::before{

  width:9em;

  height:20em;

  left:7em;

  transform:rotate(30deg);

  }

  .body.arm::after{

  width:8em;

  height:15em;

  left:-0.8em;

  top:9.5em;

  transform:rotate(-5deg);

  box-shadow:inset0.4em-1em1emrgba(0,0,0,0.2);

  }

  定义两根手指的共有属性:

  .body.arm.fingers::before,

  .body.arm.fingers::after{

  content:'';

  position:absolute;

  width:1.8em;

  height:4em;

  background-color:white;

  border-radius:50%;

  transform-origin:top;

  }

  用伪元素分别画出两根手指:

  .body.arm.fingers::before{

  top:22em;

  left:2em;

  transform:rotate(-25deg);

  box-shadow:inset0.2em-0.4em0.4emrgba(0,0,0,0.4);

  }

  .body.arm.fingers::after{

  top:21.5em;

  left:4.8em;

  transform:rotate(-5deg);

  box-shadow:inset-0.2em-0.4em0.8emrgba(0,0,0,0.3);

  z-index:-3;

  }

  至此,完成了右胳膊。把右胳膊复制并水平翻转,即可得到左胳膊:

  .body.arm.left{

  transform:scaleX(-1);

  right:0;

  z-index:-3;

  }

  接下来画腿部。

  在html文件中增加腿的dom元素:

  <divclass="baymax">

  <divclass="head">

  <!--略-->

  </div>

  <divclass="body">

  <!--略-->

  </div>

  <divclass="leftleg"></div>

  <divclass="rightleg"></div>

  </div>

  画出腿的内侧:

  .leg{

  position:absolute;

  width:5em;

  height:16em;

  bottom:0;

  background-color:white;

  border-bottom-right-radius:1.5em;

  left:10em;

  box-shadow:inset-0.7em-0.6em0.7emrgba(0,0,0,0.1);

  z-index:-3;

  }

  画出腿的外侧:

  .leg::before{

  content:'';

  position:absolute;

  width:2.5em;

  height:inherit;

  background-color:white;

  border-bottom-left-radius:100%;

  left:-2.5em;

  box-shadow:inset0.7em1.5em0.7emrgba(0,0,0,0.4);

  }

  至此,完成了右腿。把右腿复制并水平翻转,即可得到左腿:

  .leg.left{

  transform-origin:right;

  transform:scaleX(-1);

  }



感谢各位的阅读!关于“怎么用纯CSS实现大白的形象”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯