それでは初めに完成デモをご覧ください。
完成デモ
続いて各ソースコードです。
始めにHTMLです。
HTML
続いてCSSです。
CSS
*,
:before,
:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
}
.ear-left,
.ear-right,
.face,
.teak-left,
.teak-left:after,
.teak-right,
.teak-right:after {
background:#424242;
}
.bg {
height:400px;
margin:0 auto;
position:relative;
width:450px;
}
.ear-left,
.ear-left:after,
.ear-right,
.ear-right:after {
border-radius: 50%;
position:absolute;
}
.ear-left {
height:100px;
top:50px;
left:70px;
width:100px;
z-index:0;
}
.ear-left:after {
content:'';
height:50px;
top:50%;
left:50%;
margin-top:-25px;
margin-left:-25px;
width:50px;
}
.ear-right {
height:100px;
top:50px;
right:70px;
width:100px;
z-index:0;
}
.ear-right:after {
content:'';
height:50px;
margin-top:-25px;
margin-right:-25px;
top:50%;
right:50%;
width:50px;
}
.ear-left:after,
.ear-right:after { background:#B45F04; }
.teak-left,
.teak-left:after,
.teak-right,
.teak-right:after {
border-radius: 50%;
height:50px;
width:100px;
position:absolute;
}
.teak-left {
top:60%;
left:25px;
}
.teak-left:after {
content:'';
bottom:60%;
}
.teak-right {
top:60%;
right:25px;
}
.teak-right:after {
content:'';
bottom:60%;
}
.hair {
background:#000;
border-radius:20px 20px 50% 50%;
height:150px;
margin-left:-25px;
position:absolute;
top:0;
left:50%;
width:50px;
z-index:1;
}
.eyebrow-left {
border-left:30px solid transparent;
border-right:60px solid transparent;
border-top: 30px solid transparent;
border-bottom:40px solid #000;
height:0;
position:absolute;
top:90px;
left:120px;
width:0;
z-index:2;
}
.eyebrow-left2 {
background:#434343;
border-radius:150px 300px 100% 100% / 150px 250% 100% 100%;
height:60px;
position:absolute;
top:144px;
left:117px;
width:100px;
z-index:2;
}
.eyebrow-right {
border-left:60px solid transparent;
border-right:30px solid transparent;
border-top: 30px solid transparent;
border-bottom:40px solid #000;
height:0;
position:absolute;
top:90px;
right:120px;
width:0;
z-index:2;
}
.eyebrow-right2 {
background:#434343;
border-radius:300px 150px 100% 100% / 250% 150px 100% 100%;
height:60px;
position:absolute;
top:144px;
right:117px;
width:100px;
z-index:2;
}
.eye-left {
background:#fff;
border-left:3px solid #000;
border-radius:100% 140% 120% 100%/ 100% 120% 120% 50%;
height:90px;
overflow:hidden;
position:absolute;
top:165px;
left:145px;
width:64px;
z-index:2;
}
.eye-left:before {
background:#87CEFA;
border-radius:50%;
content:'';
height:82px;
position:absolute;
bottom:0;
right:0;
width:55px;
z-index:3;
}
.eye-left:after {
background:#000;
border-radius:50%;
content:'';
height:74px;
position:absolute;
bottom:0;
right:0;
width:46px;
z-index:4;
}
.eye-left-white {
background:#fff;
border-radius:50%;
height:20px;
position:absolute;
top:20px;
left:30px;
width:20px;
z-index:5;
}
.eye-right {
background:#fff;
border-right:3px solid #000;
border-radius:140% 100% 100% 120% / 120% 100% 50% 120%;
height:90px;
overflow:hidden;
position:absolute;
top:165px;
right:145px;
width:64px;
z-index:2;
}
.eye-right:before {
background:#87CEFA;
border-radius:50%;
content:'';
height:82px;
position:absolute;
bottom:0;
left:0;
width:55px;
z-index:3;
}
.eye-right:after {
background:#000;
border-radius:50%;
content:'';
height:74px;
position:absolute;
bottom:0;
left:0;
width:46px;
z-index:4;
}
.eye-right-white {
background:#fff;
border-radius:50%;
height:20px;
position:absolute;
top:20px;
right:30px;
width:20px;
z-index:5;
}
.face {
border-radius:120px;
height:300px;
margin-left:-150px;
position:absolute;
top:80px;
left:50%;
-moz-transform:rotate(45deg);
-webkit-transform:rotate(45deg);
-ms-transform:rotate(45deg);
-o-transform:rotate(45deg);
transform:rotate(45deg);
width:300px;
}
.face-bottom {
border-radius:120px;
content:'';
height:280px;
margin-top:-140px;
margin-left:-140px;
overflow:hidden;
position:absolute;
top:50%;
left:50%;
width:280px;
}
.face-bottom:before {
background:#D2691E;
border-radius:50%;
content:'';
height:90px;
position:absolute;
bottom:-10px;
left:50px;
width:250px;
z-index:10;
}
.face-bottom:after {
background:#D2691E;
border-radius:50%;
content:'';
height:90px;
position:absolute;
top:130px;
left:120px;
-moz-transform:rotate(-90deg);
-webkit-transform:rotate(-90deg);
-ms-transform:rotate(-90deg);
-o-transform:rotate(-90deg);
transform:rotate(-90deg);
width:250px;
z-index:10;
}
.nose {
background:#D2691E;
border-radius:50%;
height:100px;
margin-left:-60px;
position:absolute;
bottom:50px;
left:50%;
width:120px;
z-index:20;
}
.nose:before {
background:#FF0000;
border-radius:50%;
content:'';
height:70px;
margin-top:-40px;
margin-left:-50px;
position:absolute;
top:50%;
left:50%;
width:100px;
}
.nose:after {
background:#fff;
border-radius:50%;
content:'';
height:20px;
margin-top:-15px;
margin-left:-5px;
position:absolute;
top:50%;
left:50%;
width:20px;
}
.mouse-top {
border-bottom:3px solid #FF0000;
border-radius:50%;
height:100px;
margin-left:-100px;
overflow:hidden;
position:absolute;
bottom:55px;
left:50%;
width:200px;
z-index:1000;
}
.mouse-top:before {
background:#fff;
border-radius:100%;
content:'';
height:15px;
margin-left:-30px;
position:absolute;
bottom:-7px;
left:50%;
width:60px;
}
.mouse-bottom {
background:#FF0000;
border-radius:50%;
height:21px;
margin-left:-32px;
position:absolute;
left:50%;
bottom:45px;
width:64px;
z-index:40;
}
CSSは記述が長く見えますが、ベンダープレフィックスを除けば特に難しい記述はありません。
以上です。

