Hello Droid! CSS로 드로이드 군을 그려 보았다
목표
다음 이미지에 드로이드 군 만들기
※완성된 코드는 여기 로부터 확인할 수 있습니다.
준비
모든 디렉토리에 다음 파일 만들기
droid.html의 초기 상태
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>ドロイド君</title>
<link href="droid.css" rel="stylesheet">
</head>
<body>
<div class="droid">
<!-- ドロイド君のパーツをここに追加 -->
</div>
</body>
</body>
</html>
droid.css의 초기 상태
/* ドロイド君 */
.droid {
margin: 50px;
}
/* 以下に追記していく */
만들기
필요한 부품 검토
크게 나누어 3 파트로 나눌 수 있을 것 같아
또한 몸은 사지와 부모와 자식 관계를 구축 할 것입니다.
droid.html로 표현하면 이런 느낌이 든다.
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>ドロイド君</title>
<link href="css/droid.css" rel="stylesheet">
</head>
<body>
<div class="droid">
<div class="droid__head">
<div class="droid__antenna"></div>
<div class="droid__eye"></div>
</div>
<div class="droid__body">
<div class="droid__hand"></div>
<div class="droid__leg"></div>
</div>
</div>
</body>
</body>
</html>
머리 만들기
우선 머리만 작성
이것은 반원으로 표현할 수 있을 것 같다. droid.css에 다음 추가
.droid__head {
width: 100px;
height: 50px;
border-radius: 100px 100px 0 0;
background: #a0c437;
}
position의 relative·absolute와 z-index를 사용하여 반원 위에 눈을 돌린다
.droid__head {
width: 100px;
height: 50px;
border-radius: 100px 100px 0 0;
background: #a0c437;
/* 新規追加 */
position: relative;
z-index: 0;
}
.droid__eye {
width: 100%;
position: relative;
z-index: 1;
}
/* 疑似属性のbefore, afterを使わなくても良いが、使用するdiv タグの数を減らせる */
.droid__eye::before,
.droid__eye::after {
top: 25px;
left: 20px;
width: 13px;
height: 13px;
border-radius: 10px;
background: #ffffff;
content: "";
position: absolute;
}
파일을 열면 이런 느낌이 든다
눈처럼 안테나용 클래스도 추가
.droid__antenna {
position: relative;
z-index: 1;
}
.droid__antenna::before,
.droid__antenna::after {
border: 1px solid #a0c437;
top: px;
left: 15px;
width: 15px;
background: #a0c437;
transform: rotate(50deg);
content: "";
position: absolute;
}
.droid__antenna::after {
left: 70px;
transform: rotate(-50deg);
}
이것으로 마침내 머리가 생겼습니다.
머리 밑에 몸 만들기
다음을 추가
.droid__body {
width: 100px;
height: 100px;
background: #a0c437;
border-radius: 0 0 5px 5px / 0 0 5px 5px; /* 体の下の角を少し丸くする */
}
파일을 열면 ... 응, 머리와 몸이 붙어 버렸다,,
.droid__head
에 margin-bottom: 5px;
를 추가하여 조정이것으로 좋은 느낌이 들었다.
팔다리 추가
머리에 눈이나 안테나를 붙였을 때와 마찬가지로 손발도 붙일 수 있다
.droid__hand {
z-index: 1;
position: relative;
}
.droid__hand::before,
.droid__hand::after {
left: -25px;
width: 20px;
height: 77px;
background: #a0c437;
border-radius: 20px/ 20px;
content: "";
position: absolute;
}
.droid__hand::after {
left: 105px;
border-radius: 20px/ 20px;
}
.droid__leg {
position: relative;
z-index: 1;
}
.droid__leg::before,
.droid__leg::after {
top: 50px;
left: 10px;
width: 20px;
height: 77px;
background: #a0c437;
border-radius: 20px/ 20px;
content: "";
position: absolute;
}
.droid__leg::after {
left: 70px;
border-radius: 20px/ 20px;
}
완성!
조금 궁리
드로이드 군이 깜박이는 것을 시도했다.
.droid__eye::after
에 animation: blink-r infinite 7s;
추가추가 하기 추가
.droid__eye::before {
animation: blink-l infinite 7s;
}
@keyframes blink-r {
0% {
transform: rotate(180deg) scaleY(1);
}
1% {
transform: rotate(180deg) scaleY(0);
}
2% {
transform: rotate(180deg) scaleY(1);
}
50% {
transform: rotate(180deg) scaleY(1);
}
51% {
transform: rotate(180deg) scaleY(0);
}
52% {
transform: rotate(180deg) scaleY(1);
}
53% {
transform: rotate(180deg) scaleY(1);
}
54% {
transform: rotate(180deg) scaleY(0);
}
55% {
transform: rotate(180deg) scaleY(1);
}
100% {
transform: rotate(90deg) scaleY(1);
}
}
@keyframes blink-l {
0% {
transform: rotate(180deg) scaleY(1);
}
1% {
transform: rotate(180deg) scaleY(0);
}
2% {
transform: rotate(180deg) scaleY(1);
}
50% {
transform: rotate(180deg) scaleY(1);
}
51% {
transform: rotate(180deg) scaleY(0);
}
52% {
transform: rotate(180deg) scaleY(1);
}
53% {
transform: rotate(180deg) scaleY(1);
}
54% {
transform: rotate(180deg) scaleY(0);
}
55% {
transform: rotate(180deg) scaleY(1);
}
100% {
transform: rotate(90deg) scaleY(1);
}
}
감상
재미 있었고 CSS 공부가 되었지만,
더 이상 복잡한 것을 만들려고 하면 상당한 시간이 녹을 것 같아…
참고
BEM 문서
CSS에서 다양한 형태를 표현해 봅시다.
이미지를 사용하지 않고 HTML과 CSS만으로 고양이를 그린 이야기
Reference
이 문제에 관하여(Hello Droid! CSS로 드로이드 군을 그려 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kotti/items/72bb913936622d462597텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)