์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง ํ๊ณ
- ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด ์์ถ
- ์๋ฐ์คํฌ๋ฆฝํธ ์ค์ฝํ
- ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์์ด ์์ถ
- next13 emotion
- js ์ค์ฝํ
- ํ๋ก๊ทธ๋๋จธ์ค ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- suspense ๋ณ๋ชฉํ์
- emotion RSC
- app router emotion
- suspense ๋์์๋ฆฌ
- ๋ฐฑ์ค 1339๋ฒ js
- ๋ฐฑ์ค 2108 ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ฐฑ์ค 2108 nodejs
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง
- ์ค์ฝํ
- ์ฌ์ฉ์ฑ ๊ฐ์
- ์นด์นด์ค ์ฝํ
- ๋ฐฑ์ค 1339๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ
- ๊ตฌ๋ฆํค
- suspense ๋น๋๊ธฐ
- suspense react-query
- js ๋ฌธ์์ด ์์ถ
- ๋ฐฑ์ค 1339๋ฒ nodejs
- TypeError: createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more:
- emtion app router
- ์ต์ ๋์ฒด์ด๋
- js ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- ๋ฆฌ์กํธ์ฟผ๋ฆฌ suspense
- js
- Today
- Total
Lennon FE
[CSS] Transform, Transition, Animation์ ๋ํด ์์๋ณด์ ๋ณธ๋ฌธ
[CSS] Transform, Transition, Animation์ ๋ํด ์์๋ณด์
Lennon 2022. 4. 7. 02:521. Transform
transform์ ์ด๋ค ์์์ ๋ํด ํ์ , ํฌ๊ธฐ ๋ณ๊ฒฝ ๋ฑ์ ๋์์ ํ๋๋ก ํ๋ CSS ์ด๋ฒคํธ์ด๋ค.
์ข ๋ฅ๋ rotate(ํ์ ), scale(ํฌ๊ธฐ), skew(x์ถ,y์ถ ๊ฐ๋๋งํผ ๋นํ), translate(์ขํ ๋ณ๊ฒฝ)์ด ์๋ค.
1. rotate(x)
์ธ์๋ก ํ์ ํ ๊ฐ๋๋ฅผ ์ฃผ๋ฉด ๋๋ค. deg๋ผ๋ ๋จ์๋ฅผ ์ฌ์ฉํ์.
See the Pen Untitled by PARKMINHO (@pmhxhsj) on CodePen.
2. scale(width,height)
์ธ์๋ฅผ ๋ ๊ฐ ๋ฐ์ ์ ์๋ค. ๊ฐ๊ฐ width, height๋ฅผ ์๋ฏธํ๋ค.
1์ด ์๋ ํฌ๊ธฐ์ด๋ฉฐ, 1 ์ด๊ณผ์ผ์๋ก ๋ณธ๋์ ํฌ๊ธฐ๋ณด๋ค ์ปค์ง๋ฉฐ, ๋ฏธ๋ง์ด๋ฉด ์์์ง๋ค.
See the Pen Untitled by PARKMINHO (@pmhxhsj) on CodePen.
3. skew(x์ถ, y์ถ)
์ธ์๋ฅผ ๋ ๊ฐ ๋ฐ์ ์ ์์ผ๋ฉฐ, x์ถ, y์ถ์ ์๋ฏธํ๋ฉฐ, ์ ๋ ฅํ ๋งํผ ๋นํ์ด์ง๋ค.
See the Pen Untitled by PARKMINHO (@pmhxhsj) on CodePen.
4. translate(๊ฐ๋ก, ์ธ๋ก)
์ธ์๋ฅผ ๋ ๊ฐ ๋ฐ์ ์ ์์ผ๋ฉฐ, ๊ฐ๋ก, ์ธ๋ก๋ฅผ ์๋ฏธํ๋ฉฐ, ์๋ ์์น์์ ์ ๋ ฅํ ๊ฐ๋งํผ ์ด๋ํ๋ค.
See the Pen Untitled by PARKMINHO (@pmhxhsj) on CodePen.
2. Transition
๋ฐ๋ก ์ด๋ฒคํธ๊ฐ ๋ํ๋๋ ๊ฒ ์๋, ๋ง์ฐ์ค๋ก ํด๋ฆญํ์ ๋, ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ค๋จ์ ๋ ๋ฑ
์ด๋ค ์์์ ์ด๋ฒคํธ๊ฐ ๋์ํ๋ฉด ์คํ๋๋ ์ด๋ฒคํธ์ด๋ค.
Transition๋ ์๋์ ๊ฐ์ด ์์ฑํ๋ค.
.box {
transition-property: width;
/* ํจ๊ณผ๋ฅผ ์ ์ฉํ๊ณ ์ ํ๋ css์์ฑ */
transition-duration: 2s;
/* ํจ๊ณผ๊ฐ ๋ํ๋๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ */
transition-timing-function: linear;
/* ํจ๊ณผ์ ์๋, linear๋ ์ผ์ ํ ์๋์ด๋ฉฐ ์ฃผ๋ก ์ด๊ฑธ ์ฌ์ฉํ๋ค.*/
transition-delay: 1s;
/* ํน์ ์กฐ๊ฑด์ ๊ฑธ ์ ์์ผ๋ฉฐ, ๊ทธ์ ๋ฐ๋ผ ๋ฐ๋๋๋ค. 1s๋ 1์ด ํ ๋ฐ๋๋๋ค. */
}
Shorthand ๋ฌธ๋ฒ์ผ๋ก ์๋์ ๊ฐ์ด ํ ๋ฒ์ ๋์ดํ ์๋ ์๋ค.
์ ์ฝ๋์ ์๋ ์ฝ๋๋ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค.
.box {
transition: width 2s linear 1s;
}
๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆฌ๋ฉด ๋ฐ์ค์ width๊ฐ ์ ์ ๊ธธ์ด์ง๋ ๊ฑธ ๋ง๋ค์ด๋ณด์!
์์ ๋งํ๋ค์ํผ ํน์ ์ด๋ฒคํธ๊ฐ ์์ ๋ ๋์ํ๋ฏ๋ก hover์ ๋ฑ๋กํด์คฌ๋ค.
๐ฅ ๋ํ, delay๋ ํ์ํ ๋๋ง ์ฌ์ฉํ๋ฉด ๋๋ค! linear๋ ์ฌ์ฉํด์ค์ผ ๋์ผํ ์๋๋ก ์ผ์ ํ๊ฒ ๋์ํ๋ ์ฌ์ฉํด์ฃผ์.
See the Pen Untitled by PARKMINHO (@pmhxhsj) on CodePen.
3. Animation
ํน์ ์ด๋ฒคํธ ์์ด ์ฐฝ์ด ์ด๋ ธ์ ๋ ๋์ค๋ animation ๋๋์ด๋ผ ์๊ฐํ๋ฉด ํธํ๋ค.
animation์ ๊ธฐ๋ณธ์ ์ธ ๋์์ ํ์ธํ๊ณ , animation-direction์ ๊ฐ๊ฐ ์์ฑ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ํ์ธํ์.
@keyframes๋ from๊ณผ to ์ธ์๋ฅผ ๊ฐ์ง๋ฉฐ, from => to๋ก ๋์ํ๋ค๊ณ ์ดํดํ๋ฉด ํธํ๋ค.
์๋์ chageColor์ ๊ฐ์ด
animation-name๊ณผ @keyframes animation name์ด ์ผ์นํด์ผ ๋์ํ๋ค.
.box {
animation-name: changeColor;
animation-duration: 3s;
animation-timing-function: linear;
animation-delay: 1s;
/* transition์ ํน์ฑ๊ณผ ๊ฐ๋ค. */
animation-iteration-count: infinite;
/* animation ์ง์ ํ์๋ฅผ ์ง์ ํ๋ค. infinite๋ ๋ฌดํ์ด๋ค. */
animation-direction: alternate;
/* alternate = from => to => from
normal = from => to, form => to
reverse: to => from, to => from
*/
}
@keyframes changeColor {
from {
background-color: blue;
}
to {
background-color: red;
}
}
๋น์ฐํ animation๋ Shorthand๋ก ์์ฑํ ์ ์๋ค.
.box {
animation: changeColor 3s linear infinite alternate;
}
@keyframes changeColor {
from {
background-color: blue;
}
to {
background-color: red;
}
}
๊ฐ๋จํ๊ฒ ํ์ธํด๋ณด๋ฉด ์๋์ ๊ฐ์ด ๋์ํ๋ค.
See the Pen Untitled by PARKMINHO (@pmhxhsj) on CodePen.
alternate, normal, reverse ๋์ ์ฐจ์ด๋ ํด๋น codepen์ผ๋ก ์๊ฐ์ ์ผ๋ก ํ์ธํด๋ณด์.
๊ฐ์ฅ ์์ฐ์ค๋ฝ๊ฒ ๋์ํ๋ ๊ฒ์ alternate์ด๋ค.
See the Pen Untitled by PARKMINHO (@pmhxhsj) on CodePen.
4. Transform๊ณผ Animation์ ๊ฐ์ด ์ฌ์ฉํด๋ณด์.
@keyframes from, to์ธ์์ transform์ ์ฌ์ฉํ๋ฉด ๋๋ค.
4-1. ์ค๋์ด ๋ง๋ค๊ธฐ
See the Pen Untitled by PARKMINHO (@pmhxhsj) on CodePen.
@keyframes rotation {
from {
transform: rotate(-30deg);
}
to {
transform: rotate(30deg);
}
}
@keyframes์ transform์ ์ ์ฉํด ๋ง๋ค ์ ์๋ค!
5. prefix
css์ ์ด๋ ํ ๊ธฐ๋ฅ์ด ํน์ ๋ธ๋ผ์ฐ์ ์์ ๋์ํ์ง ์์ ์ ์์ผ๋ฏ๋ก ์ ๋์ฌ(prefix)๋ฅผ ํตํด ํด๋น ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ฅ์ ๋ํด ์ค๋ช ํ๋ฉฐ
๋์๋ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค.
์๋์ ๊ฐ์ด 4์ข ๋ฅ์ prefix๋ฅผ ๊ธฐ์ตํ์.
.box {
-webkit-transform: scale(2); /* ํฌ๋กฌ, ์ฌํ๋ฆฌ */
-moz-transform: scale(2); /* ํ์ด์ดํญ์ค */
-ms-transform: scale(2); /* ์ต์คํ๋ก๋ฌ 9.0 ์ด์ */
-o-transform: scale(2); /* ์คํ๋ผ */
}
๊ทธ๋ฆฌ๊ณ ์์ ์ค๋์ด ์์์ webkit์ ์ ์ฉํด๋ณด์.
.box {
width: 100px;
height: 100px;
background-color: red;
border-radius: 20% 20% 50% 50%;
-webkit-animation: rotation 1s linear infinite alternate;
}
@-webkit-keyframes rotation {
from {
-webkit-transform: rotate(-30deg);
}
to {
-webkit-transform: rotate(30deg);
}
}
animation, keyframes, transform ๋ชจ๋์ -webkit-์ ๋ถ์ฌ์ผ ์ ์ฉ๋ ๊ฒ์ด๋ค. ๋ง์ฝ ํ๋๋ผ๋ ๋น ๋จ๋ฆฌ๋ฉด ์ด๋ ํ ์์์ ๋ํ
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง์ด ์ด๋ฃจ์ด์ง์ง ์์ ์ ์๋ค.
์ด๋ฒ ํฌ์คํ ์์ transform, transition, animation์ ๋ํด ์์๋ดค๋ค.
๋ค ์ธ์ธ ํ์๋ ์๊ณ ํน์ ๊ธฐ๋ฅ์ด ํ์ํ ๋ ์ฐพ์์ ์ฌ์ฉํ ์ ์์ ์ ๋์ ๊ฐ๋ ๋ง ํ์ตํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค!
'๐งโ๐ป Web > CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS3] ์ ๋ ํฐ(Selector) (0) | 2022.01.26 |
---|