纯CSS画哆啦A梦

如何用纯CSS画出一个哆啦A梦?

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>哆啦A梦</title>
	<style>
		*{
			margin:0;padding:0;
		}
		section{
			width:600px;
			height:800px;
			margin:100px auto;
			position:relative;
		}
		#head{
			width:400px;
			height:400px;
			background:#08bbe6;
			border-radius:200px;
			margin:0 auto;
			border:2px solid #000;
			position:relative;
		}
		.face{
			width:320px;
			height:240px;
			background:#fff;
			border-radius:120px;
			position:absolute;
			top:130px;
			left:39px;
			border:2px solid #000;
		}
		#neck{
			width:300px;
			height:30px;
			background:#b93300;
			border-radius:15px;
			position:absolute;
			left:149px;
			top:340px;
			border:2px solid #000;
			z-index: 1
		}
		.bell{
			width:50px;
			height:50px;
			background:#e1d916;
			border:2px solid #000;
			border-radius:25px;
			position:absolute;
			left:125px;
			top:10px;
		}
		.bellLine{
			width:44px;
			height:3px;
			border:2px solid #000;
			position:absolute;
			left:128px;
			top:22px;
		}
		.blackDot{
			width:20px;
			height:20px;
			background:#000;
			border-radius:10px;
			position:absolute;
			left:142px;
			top:32px;
		}
		.backLine{
			width:3px;
			height:10px;
			background:#000;
			position:absolute;
			left:151px;
			top:52px;
		}
		.eyeOne{
			width:90px;
			height:100px;
			background:#fff;
			border-radius:43px;
			border:1px solid #000;
			position:absolute;
			left:110px;
			top:80px;
		}
		.eyeTwo{
			width:90px;
			height:100px;
			background:#fff;
			border-radius:43px;
			border:1px solid #000;
			position:absolute;
			left:200px;
			top:80px;
		}
		.eyeball{
			width:30px;
			height:30px;
			background:#000;
			border-radius:15px;
			position:absolute;
			left:30px;
			top:70px;
		}
		.nose{
			width:40px;
			height:40px;
			background:#ca3e01;
			border-radius:20px;
			border:1px solid #000;
			position:absolute;
			left:139px;
			top:35px;
		}
		.mouthLine{
			width:4px;
			height:105px;
			background:#000;
			position:absolute;
			left:158px;
			top:76px;
		}
		.mouth{
			width:150px;
			height:50px;
			border-bottom:3px solid #000;
			border-radius:0 0 75px 75px/0 0 50px 50px;
			position:absolute;
			left:85px;
			top:130px;
		}
		#body{
			width:280px;
			height:200px;
			background:#08bbe6;
			position:absolute;
			left:159px;
			top:372px;
			border:2px solid #000;
			border-top:0;
		}
		.tummy{
			width:200px;
			height:150px;
			background:#fff;
			border-radius:0 0 100px 100px;
			position:absolute;
			left:39px;
			top:-10px;
			border:2px solid #000;
			border-top:0;
		}
		.bag{
			width:150px;
			height:80px;
			border:2px solid #000;
			border-radius:0 0 75px 75px;
			position:absolute;
			left:24px;
			top:50px;
		}
		.ban{
			width:30px;
			height:16px;
			background:#fff;
			border:2px solid #000;
			border-bottom:0;
			border-radius:16px 16px 0 0;
			position:absolute;
			left:85px;
			top:194px;
		}
		.legOne{
			width:160px;
			height:40px;
			background:#fff;
			border:2px solid #000;
			border-radius:27px 20px 20px 15px;
			position:absolute;
			left:-24px;
			top:200px;
		}
		.legTwo{
			width:160px;
			height:40px;
			background:#fff;
			border:2px solid #000;
			border-radius:20px 27px 15px 20px;
			position:absolute;
			right:-29px;
			top:200px;
		}
		.armOne{
			width:80px;
			height:40px;
			background:#08bbe6;
			border:2px solid #000;
			position:absolute;
			left:-40px;
			top:30px;
			border-radius:20px 0 0 20px;
		}
		.armTwo{
			width:80px;
			height:40px;
			background:#08bbe6;
			border:2px solid #000;
			position:absolute;
			right:-43px;
			top:30px;
			border-radius:0 20px 20px 0;
		}
		.handOne{
			width:60px;
			height:60px;
			background:#fff;
			border:2px solid #000;
			position:absolute;
			left:35px;
			top:20px;
			border-radius:30px;
		}
		.handTwo{
			width:60px;
			height:60px;
			background:#fff;
			border:2px solid #000;
			position:absolute;
			right:32px;
			top:20px;
			border-radius:30px;
		}
		#heart{
			width:150px;
			height:150px;
			position:absolute;
			left:242px;
			top:370px;
			z-index:1;
			transform: scale(0.9);
		}
		#heart:before {
        	content: "";
        	position:absolute;
        	top: 0;
			left: 60px;
        	width: 80px;
        	height: 140px;
        	background-color: red;
        	border-radius: 150px 150px 0 0 ;
        	transform: rotate(-45deg);
        	transform-origin:0 100%; 
        }
		#heart:after {
			content: "";
        	position:absolute;
        	top: 0;
			right: 90px;
        	width: 80px;
        	height: 140px;
        	background-color: red;
        	border-radius: 150px 150px 0 0 ;
        	transform: rotate(45deg);
        	transform-origin: 100% 100%;
        }
		#heart {
        	animation-name:heartbeat; 
        	animation-duration:2000ms;
        	animation-timing-function:cubic-bezier(0,0,0,1.74);
        	animation-delay:500ms;
        	animation-iteration-count:infinite;
        	animation-play-state:running;     
        }
		@keyframes heartbeat{
        	0%{transform: scale(0.95);}
        	50%{transform: scale(1);}
        	100%{transform: scale(0.95);}
        }
	</style>
</head>
<body>
	<section>
		<div id="head">
			<div class="face">
				<div class="nose"></div>
				<div class="mouthLine"></div>
				<div class="mouth"></div>
			</div>
			<div class="eyeOne">
				<div class="eyeball"></div>
			</div>
			<div class="eyeTwo">
				<div class="eyeball"></div>
			</div>
		</div>
		<div id="neck">
			<div class="bell"></div>
			<div class="bellLine"></div>
			<div class="blackDot"></div>
			<div class="backLine"></div>
		</div>
		<div id="body">
			<div class="tummy">
				<div class="bag"></div>
				<div class="ban"></div>
			</div>
			<div class="legOne"></div>
			<div class="legTwo"></div>
			<div class="armOne"></div>
			<div class="armTwo"></div>
			<div class="handOne"></div>
			<div class="handTwo"></div>
		</div>
		<div id="heart"></div>
	</section>
</body>
</html>

效果图如下:
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个用HTML+CSS哆啦A梦的示例: 1. 首先,我们需要一个HTML文件,可以使用以下代码: ``` <!DOCTYPE html> <html> <head> <title>哆啦A梦</title> <style> #doraemon { position: relative; width: 200px; height: 200px; background-color: #4d4d4d; border-radius: 100px; overflow: hidden; } #doraemon:before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #fff; border-radius: 100px; transform: translate(30px, 30px); } #doraemon .face { position: absolute; top: 30px; left: 30px; width: 140px; height: 140px; background-color: #fff; border-radius: 70px; overflow: hidden; } #doraemon .face:before { content: ""; position: absolute; top: 5px; left: 5px; width: 130px; height: 130px; background-color: #4d4d4d; border-radius: 65px; } #doraemon .face:after { content: ""; position: absolute; top: 50px; left: 50px; width: 40px; height: 40px; background-color: #fff; border-radius: 20px; } #doraemon .eyes { position: absolute; top: 50px; left: 70px; width: 60px; height: 45px; background-color: #000; border-radius: 30px; overflow: hidden; } #doraemon .eyes:before { content: ""; position: absolute; top: 5px; left: 5px; width: 50px; height: 35px; background-color: #fff; border-radius: 25px; } #doraemon .eyes:after { content: ""; position: absolute; top: 15px; left: 15px; width: 20px; height: 15px; background-color: #000; border-radius: 10px; } #doraemon .mouth { position: absolute; top: 110px; left: 40px; width: 120px; height: 50px; border-radius: 25px; border-top: 2px solid #000; background-color: #fff; transform: rotate(-20deg); } #doraemon .mouth:before { content: ""; position: absolute; top: 5px; left: 5px; width: 110px; height: 40px; background-color: #4d4d4d; border-radius: 20px; transform: rotate(20deg); } #doraemon .whiskers { position: absolute; top: 75px; left: 50px; width: 100px; height: 1px; background-color: #000; transform: rotate(10deg); } #doraemon .whiskers:before { content: ""; position: absolute; top: -5px; left: 0; width: 5px; height: 10px; background-color: #000; transform: rotate(-20deg); } #doraemon .whiskers:after { content: ""; position: absolute; top: 5px; left: 0; width: 5px; height: 10px; background-color: #000; transform: rotate(-20deg); } #doraemon .whiskers:nth-child(2) { transform: rotate(-10deg); } #doraemon .whiskers:nth-child(2):before { transform: rotate(20deg); } #doraemon .whiskers:nth-child(2):after { transform: rotate(20deg); } #doraemon .whiskers:nth-child(3) { transform: rotate(10deg); } #doraemon .whiskers:nth-child(3):before { transform: rotate(-20deg); } #doraemon .whiskers:nth-child(3):after { transform: rotate(-20deg); } </style> </head> <body> <div id="doraemon"> <div class="face"></div> <div class="eyes"></div> <div class="mouth"></div> <div class="whiskers"></div> <div class="whiskers"></div> <div class="whiskers"></div> </div> </body> </html> ``` 2. 接下来,我们来解释一下上面的代码: - 通过`position: relative`设置`#doraemon`为相对定位,以便于后面的绝对定位。 - 设置`width`和`height`为200px,使得`#doraemon`呈现为一个圆形。 - 设置`background-color`为#4d4d4d,使得`#doraemon`呈现为蓝色。 - 通过`border-radius: 100px`将`#doraemon`设置为圆形。 - 通过`overflow: hidden`将`#doraemon`内部的元素裁剪为圆形。 3. 接下来,我们需要用伪元素`::before`来实现哆啦A梦的脸部分: - 通过`content: ""`设置伪元素的内容为空。 - 通过`position: absolute`将伪元素绝对定位在`#doraemon`内部。 - 通过`top`和`left`属性将伪元素相对于`#doraemon`进行定位。 - 通过`width`和`height`设置伪元素的大小。 - 通过`background-color`设置伪元素的颜色。 - 通过`border-radius`将伪元素设置为圆形。 - 通过`transform: translate(30px, 30px)`将伪元素向右下方平移,实现哆啦A梦的脸颊。 4. 接下来,我们需要用`div`元素来实现哆啦A梦的眼睛: - 通过`position: absolute`将眼睛绝对定位在脸部内部。 - 通过`top`和`left`属性将眼睛相对于脸部进行定位。 - 通过`width`和`height`设置眼睛的大小。 - 通过`background-color`设置眼睛的颜色。 - 通过`border-radius`将眼睛设置为半圆形。 - 通过`overflow: hidden`将眼睛内部的元素裁剪为半圆形。 5. 接下来,我们需要用伪元素`::before`来实现哆啦A梦的眼珠: - 通过`content: ""`设置伪元素的内容为空。 - 通过`position: absolute`将伪元素绝对定位在眼睛内部。 - 通过`top`和`left`属性将伪元素相对于眼睛进行定位。 - 通过`width`和`height`设置伪元素的大小。 - 通过`background-color`设置伪元素的颜色。 - 通过`border-radius`将伪元素设置为圆形。 6. 接下来,我们需要用`div`元素来实现哆啦A梦的嘴巴: - 通过`position: absolute`将嘴巴绝对定位在脸部内部。 - 通过`top`和`left`属性将嘴巴相对于脸部进行定位。 - 通过`width`和`height`设置嘴巴的大小。 - 通过`border-radius`将嘴巴设置为半圆形。 - 通过`border-top`设置嘴巴的上边框。 - 通过`background-color`设置嘴巴的颜色。 - 通过`transform: rotate(-20deg)`将嘴巴旋转20度,使得它看起来更加生动。 7. 最后,我们需要用`div`元素和伪元素来实现哆啦A梦的小胡须: - 通过`position: absolute`将小胡须绝对定位在脸部内部。 - 通过`top`和`left`属性将小胡须相对于脸部进行定位。 - 通过`width`和`height`设置小胡须的大小。 - 通过`background-color`设置小胡须的颜色。 - 通过`transform: rotate(10deg)`将小胡须旋转10度,使得它看起来更加生动。 - 通过伪元素来实现小胡须的两端。 到这里,一个用HTML+CSS哆啦A梦就完成了。希望这个示例对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值