728x90
CSS : ์ ๋๋ฉ๋์ ๋ง๋ค๊ธฐ : ๋ฐ์ค
์ด๋ฒ ์๊ฐ์๋ CSS์ค์ต์ผ๋ก ๊ท์ฌ์ด ๋ฐ์ค ์ ๋๋ฉ์ด์ ์ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ๐
#1. HTML
๋จผ์ HTML ์ฝ๋๋ก div๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ค๋ฅผ ๋ง๋ค์ด ์ค๋๋ค.
<div class="box"></div>
#2. CSS
๋ค์์ CSS ์์ฑ์
๋๋ค. animation ์์ฑ์ ์ฌ์ฉํ์ฌ keyframes์ ์ ์ฉํ ์ ๋๋ฉ์ด์
๋ช
์ ์์ฑํด์ฃผ๊ณ ๊ทธ ์ธ ์์ฑ์ ์ค์ ํด์ค๋๋ค.
@keyframes์ ์์ฑ์ ์ค์ ํ ์ ๋๋ฉ์ด์
๋ช
์ ์จ์ค๋ค ๊ฐ 0% ~ 100% ์ฌ์ด์ ์์ฑ์ ๋ถ์ฌํด์ค๋๋ค.
body {
height: 100vh;
background-image: linear-gradient(to top, Plum, skyblue);
}
.box {
width: 50px;
height: 50px;
position: absolute; /* ์์น ์ก๊ธฐ */
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
.box::before {
content:'';
width: 50px;
height: 5px;
background: #000;
position: absolute;
top: 58px;
left: 0;
border-radius: 50%;
opacity: 0.2;
animation: shadow 0.6s linear infinite; /* ๋ฌดํ์ผ๋ก ๋๋ฆฌ๊ธฐ */
}
@keyframes shadow {
0% {transform: scale(1, 1);}
50% {transform: scale(1.2, 1);}
100% {transform: scale(1, 1);}
}
.box::after {
content: '';
background: pink;
width: 50px;
height: 50px;
position: absolute;
left: 0;
top: 0;
border-radius: 3px;
animation: load 0.6s linear infinite;
}
@keyframes load {
17% {
border-bottom-right-radius: 3px;
} /* ๊ธฐ๋ณธ ๋ชจ์์ผ๋ก ํน๋ณํ ํจ๊ณผ๋ ์๋ค. */
25% {
transform: translatey(9px) rotate(22.5deg);
}
50% {
transform: translatey(18px) scale(1, 0.9)rotate(45deg);
border-bottom-right-radius: 40px;
}
75% {
transform: translatey(9px) rotate(67.5deg);
}
100% {
transform: translatey(0px) rotate(90deg);
}
}
#3. ๊ฒฐ๊ณผ๋ณด๊ธฐ
728x90
'CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] SVG : ๋ฐฑํฐ ๊ทธ๋ํฝ ๋ํ ํํํ๊ธฐ (5) | 2022.09.08 |
---|---|
[CSS] ์ ๋๋ฉ์ด์ ์ค์ต : ๋ก๋ฉ (3) | 2022.08.30 |
[CSS] ์์๋ฅผ ์จ๊ธฐ๋ ๋ฐฉ๋ฒ (6) | 2022.08.26 |
[CSS] CSS์ ์์ ํํ ๋ฐฉ๋ฒ (2) | 2022.08.24 |
[CSS] CSS ๋จ์์ ์ข ๋ฅ (2) | 2022.08.24 |
๋๊ธ