纯CSS实现大白

 知识点:

  • div 布局
  • CSS 相对定位
  • CSS 各种属性的应用

通过 div 定义大白身体的各个部位,就像写一个网页的框架一样,我们将大白身体的各部位都用 div 来给出定义,然后需要利用 CSS 来绘制它的样式外表。

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>Baymax</title>

    <style>
        @keyframes blink {
            40% {
                transform: rotateX(80deg);
            }
        }

        body {
            background: #595959;
        }

        #baymax {
            /*设置为 居中*/
            margin: 0 auto;

            /*高度*/
            height: 600px;

            /*隐藏溢出*/
            overflow: hidden;
        }

        #head {
            height: 64px;
            width: 100px;

            /*以百分比定义圆角的形状*/
            border-radius: 50%;

            /*背景*/
            background: #fff;
            margin: 0 auto;
            margin-bottom: -20px;

            /*设置下边框的样式*/
            border-bottom: 5px solid #e0e0e0;

            /*属性设置元素的堆叠顺序;
    拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面*/
            z-index: 100;

            /*生成相对定位的元素*/
            position: relative;
        }

        #eye,
        #eye2 {
            width: 11px;
            height: 13px;
            background: #282828;
            border-radius: 50%;
            position: relative;
            top: 30px;
            left: 27px;

            /*旋转该元素*/
            transform: rotate(8deg);

            animation: blink 1s ease-in-out infinite alternate;
        }

        #eye2 {
            /*使其旋转对称*/
            transform: rotate(-8deg);
            left: 69px;
            top: 17px;
        }

        #mouth {
            width: 38px;
            height: 1.5px;
            background: #282828;
            position: relative;
            left: 34px;
            top: 10px;
        }

        #torso,
        #belly {
            margin: 0 auto;
            height: 200px;
            width: 180px;
            background: #fff;
            border-radius: 47%;

            /*设置边框*/
            border: 5px solid #e0e0e0;
            border-top: none;
            z-index: 1;
        }

        #belly {
            height: 300px;
            width: 245px;
            margin-top: -140px;
            z-index: 5;
        }

        #cover {
            width: 190px;
            background: #fff;
            height: 150px;
            margin: 0 auto;
            position: relative;
            top: -20px;
            border-radius: 50%;
        }

        #heart {
            width: 25px;
            height: 25px;
            border-radius: 50%;
            position: relative;

            /*向边框四周添加阴影效果*/
            box-shadow: 2px 5px 2px #ccc inset;

            right: -115px;
            top: 40px;
            z-index: 111;
            border: 1px solid #ccc;
        }

        #left-arm,
        #right-arm {
            height: 270px;
            width: 120px;
            border-radius: 50%;
            background: #fff;
            margin: 0 auto;
            position: relative;
            top: -350px;
            left: -100px;
            transform: rotate(20deg);
            z-index: -1;
        }

        #right-arm {
            transform: rotate(-20deg);
            left: 100px;
            top: -620px;
        }

        #l-bigfinger,
        #r-bigfinger {
            height: 50px;
            width: 20px;
            border-radius: 50%;
            background: #fff;
            position: relative;
            top: 250px;
            left: 50px;
            transform: rotate(-50deg);
        }

        #r-bigfinger {
            left: 50px;
            transform: rotate(50deg);
        }

        #l-smallfinger,
        #r-smallfinger {
            height: 35px;
            width: 15px;
            border-radius: 50%;
            background: #fff;
            position: relative;
            top: 195px;
            left: 66px;
            transform: rotate(-40deg);
        }

        #r-smallfinger {
            background: #fff;
            transform: rotate(40deg);
            top: 195px;
            left: 37px;
        }

        #left-leg,
        #right-leg {
            height: 170px;
            width: 90px;
            border-radius: 40% 30% 10px 45%;
            background: #fff;
            position: relative;
            top: -640px;
            left: -45px;
            transform: rotate(-1deg);
            z-index: -2;
            margin: 0 auto;
        }

        #right-leg {
            background: #fff;
            border-radius: 30% 40% 45% 10px;
            margin: 0 auto;
            top: -810px;
            left: 50px;
            transform: rotate(1deg);
        }
    </style>
</head>

<body>
    <div id="baymax">
        <!-- 定义头部,包括两个眼睛、嘴 -->
        <div id="head">
            <div id="eye"></div>
            <div id="eye2"></div>
            <div id="mouth"></div>
        </div>

        <!-- 定义躯干,包括心脏 -->
        <div id="torso">
            <div id="heart"></div>
        </div>

        <!-- 定义肚子腹部,包括 cover(和躯干的连接处) -->
        <div id="belly">
            <div id="cover"></div>
        </div>

        <!-- 定义左臂,包括一大一小两个手指 -->
        <div id="left-arm">
            <div id="l-bigfinger"></div>
            <div id="l-smallfinger"></div>
        </div>

        <!-- 定义右臂,同样包括一大一小两个手指 -->
        <div id="right-arm">
            <div id="r-bigfinger"></div>
            <div id="r-smallfinger"></div>
        </div>

        <!-- 定义左腿 -->
        <div id="left-leg"></div>

        <!-- 定义右腿 -->
        <div id="right-leg"></div>
    </div>
</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值