๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Stylesheet/CSS

[CSS3]CSS Transform ์†์„ฑ ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ํ•„์ˆ˜์ ์ธ ๋ณ€ํ˜• ๊ธฐ์ˆ  ๋ฐฐ์šฐ๊ธฐ

by YJ Dev 2024. 5. 30.
728x90
๋ฐ˜์‘ํ˜•
SMALL

CSS Transform ์†์„ฑ์€ HTML ์š”์†Œ๋ฅผ ๋ณ€ํ˜•์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์š”์†Œ์˜ ์œ„์น˜, ํฌ๊ธฐ, ํšŒ์ „, ๊ธฐ์šธ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Transform ์†์„ฑ์€ 2D ๋ฐ 3D ๋ณ€ํ˜• ๋ชจ๋‘๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ์‹œ๊ฐ์  ํšจ๊ณผ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์›น ํŽ˜์ด์ง€์˜ ์—ญ๋™์„ฑ์„ ๋”ํ•ด์ค๋‹ˆ๋‹ค.

css transform


Transform๊ณผ ๊ด€๋ จ์žˆ๋Š” css์˜ ์ „ํ™˜ํšจ๊ณผ์™€ ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ๋‚ด์šฉ๋„ ํ™•์ธํ•ด ์ฃผ์„ธ์š”๐Ÿ˜
๐Ÿ”ปcss์—์„œ ์š”์†Œ์— ์ ์šฉ๋œ ์Šคํƒ€์ผ์„ ์†์„ฑ๊ฐ’์„ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€ํ•˜๊ฒŒ ํ•˜๋Š” ์ „ํ™˜ํšจ๊ณผ๐Ÿ”ป

 

[CSS3]CSS ์ „ํ™˜ํšจ๊ณผ ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ์›น์‚ฌ์ดํŠธ์— ์ƒ๋™๊ฐ์„ ๋”ํ•˜๋Š” ๋น„๋ฐ€!

CSS ์ „ํ™˜ํšจ๊ณผ๋Š” ์›น์‚ฌ์ดํŠธ์˜ ์š”์†Œ๊ฐ€ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋ณ€ํ•˜๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ „ํ™˜ํšจ๊ณผ๋Š” ์›น์‚ฌ์ดํŠธ์— ์ƒ๋™๊ฐ์„ ๋”ํ•˜๊ณ  ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญ

creativevista.tistory.com

๐Ÿ”ป์ „ํ™˜ํšจ๊ณผ๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐ”๊ฟ”์ฃผ๋Š” css ์• ๋‹ˆ๋ฉ”์ด์…˜๐Ÿ”ป

 

[CSS3]CSS ์• ๋‹ˆ๋ฉ”์ด์…˜ ์†์„ฑ ์ด์ •๋ฆฌ: ๋งค๋ ฅ์ ์ธ ์›น ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

CSS ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ์š”์†Œ์˜ ์Šคํƒ€์ผ์„ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€ํ™”์‹œํ‚ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์›น ํŽ˜์ด์ง€์— ๋™์ ์ธ ํšจ๊ณผ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” CSS ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ๊ณ 

creativevista.tistory.com

CSS Transform ์†์„ฑ์ด๋ž€?๐Ÿค”

CSS Transform์ด๋ž€?

CSS Transform์€ HTML ์š”์†Œ๋ฅผ ์ด๋™, ํšŒ์ „, ํฌ๊ธฐ ์กฐ์ •, ๊ธฐ์šธ์ž„ ๋“ฑ์„ ํ†ตํ•ด ๋ณ€ํ˜•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” CSS ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ •์ ์ธ ์›น ํŽ˜์ด์ง€์— ๋™์ ์ธ ํšจ๊ณผ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CSS Transform์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

๊ธฐ๋ณธ์ ์ธ transform ๋ฌธ๋ฒ•๊ณผ ๊ฐ ๋ณ€ํ™˜ ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

selector {
  transform: transform-function(value);
}

์—ฌ๊ธฐ์„œ transform-function์—๋Š” ๋‹ค์–‘ํ•œ ๋ณ€ํ™˜ ํ•จ์ˆ˜๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ํ•จ์ˆ˜๋“ค์€ ํ•„์š”์— ๋”ฐ๋ผ ์กฐํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€ํ™˜ ํ•จ์ˆ˜

  • translate(): ์š”์†Œ๋ฅผ x์ถ•, y์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.
  • translateX(): ์š”์†Œ๋ฅผ x์ถ• ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.
  • translateY(): ์š”์†Œ๋ฅผ y์ถ• ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.
  • scale(): ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ x์ถ•, y์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค.
  • scaleX(): ์š”์†Œ์˜ x์ถ• ํฌ๊ธฐ๋งŒ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค.
  • scaleY(): ์š”์†Œ์˜ y์ถ• ํฌ๊ธฐ๋งŒ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค.
  • rotate(): ์š”์†Œ๋ฅผ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค. ๋‹จ์œ„๋Š” ๋„(degree)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • skew(): ์š”์†Œ๋ฅผ x์ถ•, y์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ๊ธฐ์šธ์ž…๋‹ˆ๋‹ค.
  • skewX(): ์š”์†Œ๋ฅผ x์ถ• ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ๊ธฐ์šธ์ž…๋‹ˆ๋‹ค.
  • skewY(): ์š”์†Œ๋ฅผ y์ถ• ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ๊ธฐ์šธ์ž…๋‹ˆ๋‹ค.

Transform์˜ ์ฃผ์š” ๊ธฐ๋Šฅ๐Ÿ”ง

Translate ↔๏ธ

Translate ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ X์ถ• ๋˜๋Š” Y์ถ•์œผ๋กœ ์ด๋™์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. translate์—๋Š” 2D ๋ณ€ํ™˜์„ ์œ„ํ•œ translate, translateX, translateY, translateZ, translate3d ๋“ฑ์˜ ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

1. translate

translate ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ X์ถ•๊ณผ Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: translate(x, y);
  • x: ์š”์†Œ๋ฅผ X์ถ•์„ ๋”ฐ๋ผ ์ด๋™์‹œํ‚ค๋Š” ๊ฑฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํ”ฝ์…€(px), ํผ์„ผํŠธ(%) ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • y: ์š”์†Œ๋ฅผ Y์ถ•์„ ๋”ฐ๋ผ ์ด๋™์‹œํ‚ค๋Š” ๊ฑฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ”ฝ์…€(px), ํผ์„ผํŠธ(%) ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ธ์ž๋ฅผ ์–‘์ˆ˜๋กœ ์ง€์ •: x์ถ•์€ ์˜ค๋ฅธ์ชฝ, y์ถ•์€ ์•„๋ž˜์ชฝ์œผ๋กœ ์ด๋™
  • ์ธ์ž๋ฅผ ์Œ์ˆ˜๋กœ ์ง€์ •: x์ถ•์€ ์™ผ์ชฝ, y์ถ•์€ ์œ„์ชฝ์œผ๋กœ ์ด๋™

์˜ˆ์ œ

.example {
  transform: translate(50px, 100px);
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ๊ฐ€ X์ถ•์œผ๋กœ 50px, Y์ถ•์œผ๋กœ 100px ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

2. translateX

translateX ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ X์ถ•์„ ๋”ฐ๋ผ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: translateX(x);


์˜ˆ์ œ

.example {
  transform: translateX(50px);
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ๊ฐ€ X์ถ•์œผ๋กœ 50px ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

3. translateY

translateY ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ Y์ถ•์„ ๋”ฐ๋ผ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: translateY(y);


์˜ˆ์ œ

.example {
  transform: translateY(100px);
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ๊ฐ€ Y์ถ•์œผ๋กœ 100px ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

4. translateZ

translateZ ํ•จ์ˆ˜๋Š” 3D ๊ณต๊ฐ„์—์„œ ์š”์†Œ๋ฅผ Z ์ถ•์„ ๋”ฐ๋ผ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: translateZ(z);


์˜ˆ์ œ

.example {
  transform: translateZ(200px);
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ๊ฐ€ Z ์ถ•์œผ๋กœ 200px ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

5. translate3d

translate3d ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ X์ถ•, Y์ถ• ๋ฐ Z ์ถ•์„ ๋”ฐ๋ผ 3์ฐจ์›์œผ๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: translate3d(x, y, z);


์˜ˆ์ œ

.example {
  transform: translate3d(50px, 100px, 200px);
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ๊ฐ€ X์ถ•์œผ๋กœ 50px, Y์ถ•์œผ๋กœ 100px, Z ์ถ•์œผ๋กœ 200px ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

์ข…ํ•ฉ ์˜ˆ์ œ

.example {
  width: 100px;
  height: 100px;
  background-color: blue;
  transform: translate(50px, 100px);
}

.example-x {
  transform: translateX(50px);
}

.example-y {
  transform: translateY(100px);
}

.example-z {
  transform: translateZ(200px);
}

.example-3d {
  transform: translate3d(50px, 100px, 200px);
}

Rotate ๐Ÿ”„

rotate ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ ํšŒ์ „์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. rotate ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ 2D ํ‰๋ฉด ์ƒ์—์„œ ์‹œ๊ณ„ ๋ฐฉํ–ฅ ๋˜๋Š” ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค. ์ด ํšŒ์ „์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ค‘์‹ฌ์ ์„ ๊ธฐ์ค€์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€๋งŒ, transform-origin ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ์ „ ์ค‘์‹ฌ์ ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3D ๊ณต๊ฐ„์—์„œ ์š”์†Œ๋ฅผ ํšŒ์ „์‹œํ‚ค๊ธฐ ์œ„ํ•ด rotateX, rotateY, rotateZ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. rotate

rotate ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ 2D ํ‰๋ฉด์—์„œ ์ง€์ •ํ•œ ๊ฐ๋„๋งŒํผ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค. ์–‘์ˆ˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ณ„ ๋ฐฉํ–ฅ(์˜ค๋ฅธ์ชฝ)์œผ๋กœ ํšŒ์ „ํ•˜๊ณ , ์Œ์ˆ˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ(์™ผ์ชฝ)์œผ๋กœ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: rotate(angle);
  • angle: ์š”์†Œ๋ฅผ ํšŒ์ „์‹œํ‚ฌ ๊ฐ๋„์ž…๋‹ˆ๋‹ค. ๋‹จ์œ„๋กœ๋Š” deg(๋„), grad(๊ทธ๋ผ๋””์–ธํŠธ), rad(๋ผ๋””์•ˆ), turn(ํ„ด) ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • deg: ๋„ ๋‹จ์œ„ (360 deg๋Š” ํ•œ ๋ฐ”ํ€ด ํšŒ์ „)
    • grad: ๊ทธ๋ผ๋””์–ธํŠธ (400 grad๋Š” ํ•œ ๋ฐ”ํ€ด ํšŒ์ „)
    • rad: ๋ผ๋””์•ˆ (2π rad๋Š” ํ•œ ๋ฐ”ํ€ด ํšŒ์ „)
    • turn: ํ„ด (1 turn์€ ํ•œ ๋ฐ”ํ€ด ํšŒ์ „)

์˜ˆ์ œ

.example {
  transform: rotate(45deg); /* 45๋„ ์‹œ๊ณ„ ๋ฐฉํ–ฅ ํšŒ์ „ */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ๊ฐ€ 45๋„ ์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค.

2. rotateX

์š”์†Œ๋ฅผ X์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: rotateX(angle);


์˜ˆ์ œ

.example {
  transform: rotateX(45deg); /* X์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 45๋„ ํšŒ์ „ */
}

3. rotateY

์š”์†Œ๋ฅผ Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: rotateY(angle);


์˜ˆ์ œ

.example {
  transform: rotateY(45deg); /* Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 45๋„ ํšŒ์ „ */
}

4. rotateZ

์š”์†Œ๋ฅผ Z ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค. rotate ํ•จ์ˆ˜์™€ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: rotateZ(angle);


์˜ˆ์ œ

.example {
  transform: rotateZ(45deg); /* Z์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 45๋„ ํšŒ์ „ */
}

5. rotate3d

3D ๊ณต๊ฐ„์—์„œ ์š”์†Œ๋ฅผ ์ž„์˜์˜ ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: rotate3d(x, y, z, angle);
  • x, y, z: ํšŒ์ „ ์ถ•์˜ ๋ฒกํ„ฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด (1, 0, 0)์€ X์ถ•์„, (0, 1, 0)์€ Y์ถ•์„, (0, 0, 1)์€ Z ์ถ•์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • angle: ํšŒ์ „ ๊ฐ๋„์ž…๋‹ˆ๋‹ค.

์˜ˆ์ œ

.example {
  transform: rotate3d(1, 1, 0, 45deg); /* X์ถ•๊ณผ Y์ถ•์ด ๊ฒฐํ•ฉ๋œ ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 45๋„ ํšŒ์ „ */
}


์ข…ํ•ฉ ์˜ˆ์ œ

.example {
  width: 100px;
  height: 100px;
  background-color: blue;
  transform: rotate(45deg);
}

.example-x {
  transform: rotateX(45deg);
}

.example-y {
  transform: rotateY(45deg);
}

.example-z {
  transform: rotateZ(45deg);
}

.example-3d {
  transform: rotate3d(1, 1, 0, 45deg);
}

.example-origin {
  transform: rotate(45deg);
  transform-origin: bottom right;
}

Scale๐Ÿ”

scale ํ•จ์ˆ˜๋Š” ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์š”์†Œ์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ๋น„์œจ์— ๋”ฐ๋ผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ด๋Š” ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค.

1. scale

scale ํ•จ์ˆ˜๋Š” ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ X์ถ•๊ณผ Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ๋™์‹œ์— ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: scale(x, y);
  • x: ์š”์†Œ์˜ ๊ฐ€๋กœ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋น„์œจ์ž…๋‹ˆ๋‹ค.
  • y: ์š”์†Œ์˜ ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋น„์œจ์ž…๋‹ˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด x์™€ ๋™์ผํ•œ ๊ฐ’์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

.example {
  transform: scale(1.5, 2); /* ๊ฐ€๋กœ 1.5๋ฐฐ, ์„ธ๋กœ 2๋ฐฐ */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ๊ฐ€ ๊ฐ€๋กœ๋กœ 1.5๋ฐฐ, ์„ธ๋กœ๋กœ 2๋ฐฐ ์ปค์ง‘๋‹ˆ๋‹ค.

2.scaleX

scaleX ํ•จ์ˆ˜๋Š” ์š”์†Œ์˜ ๊ฐ€๋กœ ํฌ๊ธฐ๋งŒ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: scaleX(x);


์˜ˆ์ œ

.example {
  transform: scaleX(1.5); /* ๊ฐ€๋กœ 1.5๋ฐฐ */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ์˜ ๊ฐ€๋กœ ํฌ๊ธฐ๋งŒ 1.5๋ฐฐ ์ปค์ง‘๋‹ˆ๋‹ค.

3.scaleY

scaleY ํ•จ์ˆ˜๋Š” ์š”์†Œ์˜ ์„ธ๋กœ ํฌ๊ธฐ๋งŒ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: scaleY(y);

์˜ˆ์ œ

.example {
  transform: scaleY(2); /* ์„ธ๋กœ 2๋ฐฐ */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ์˜ ์„ธ๋กœ ํฌ๊ธฐ๋งŒ 2๋ฐฐ ์ปค์ง‘๋‹ˆ๋‹ค.

4.scaleZ

scaleZ ํ•จ์ˆ˜๋Š” 3D ๊ณต๊ฐ„์—์„œ ์š”์†Œ์˜ ๊นŠ์ด(Z ์ถ•)๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: scaleZ(z);


์˜ˆ์ œ

.example {
  transform: scaleZ(1.2); /* ๊นŠ์ด 1.2๋ฐฐ */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ์˜ ๊นŠ์ด(Z ์ถ•)๊ฐ€ 1.2๋ฐฐ ์ปค์ง‘๋‹ˆ๋‹ค.

5.scale3d

scale3d ํ•จ์ˆ˜๋Š” ์š”์†Œ์˜ X, Y, Z์ถ• ํฌ๊ธฐ๋ฅผ ๋ชจ๋‘ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: scale3d(x, y, z);


์˜ˆ์ œ

.example {
  transform: scale3d(1.5, 2, 1.2); /* ๊ฐ€๋กœ 1.5๋ฐฐ, ์„ธ๋กœ 2๋ฐฐ, ๊นŠ์ด 1.2๋ฐฐ */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ๊ฐ€ ๊ฐ€๋กœ๋กœ 1.5๋ฐฐ, ์„ธ๋กœ๋กœ 2๋ฐฐ, ๊นŠ์ด๋กœ 1.2๋ฐฐ ์ปค์ง‘๋‹ˆ๋‹ค.


์ข…ํ•ฉ ์˜ˆ์ œ

.example {
  width: 100px;
  height: 100px;
  background-color: blue;
  transform: scale(1.5, 2);
}

.example-x {
  transform: scaleX(1.5);
}

.example-y {
  transform: scaleY(2);
}

.example-z {
  transform: scaleZ(1.2);
}

.example-3d {
  transform: scale3d(1.5, 2, 1.2);
}

Skew ๐Ÿ”€

skew ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ ๊ธฐ์šธ์ด๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ X์ถ•๊ณผ Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ๊ธฐ์šธ์—ฌ ๋น„๋šค์–ด์ง€๊ฒŒ ๋ณ€ํ˜•ํ•ฉ๋‹ˆ๋‹ค.

1.skew

skew ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ X์ถ•๊ณผ Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ๋™์‹œ์— ๊ธฐ์šธ์ž…๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: skew(x-angle, y-angle);
  • x-angle: ์š”์†Œ๋ฅผ X์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ๊ธฐ์šธ์ด๋Š” ๊ฐ๋„์ž…๋‹ˆ๋‹ค.
  • y-angle: ์š”์†Œ๋ฅผ Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ๊ธฐ์šธ์ด๋Š” ๊ฐ๋„์ž…๋‹ˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด 0์ด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

.example {
  transform: skew(30deg, 20deg); /* X์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 30๋„, Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 20๋„ ๊ธฐ์šธ์ž„ */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š” .example ์š”์†Œ๊ฐ€ X์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 30๋„, Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 20๋„ ๊ธฐ์šธ์–ด์ง‘๋‹ˆ๋‹ค.

2.skewX

skewX ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ X์ถ•์„ ๊ธฐ์ค€์œผ๋กœ๋งŒ ๊ธฐ์šธ์ž…๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: skewX(x-angle);


์˜ˆ์ œ

.example {
  transform: skewX(30deg); /* X์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 30๋„ ๊ธฐ์šธ์ž„ */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š” .example ์š”์†Œ๊ฐ€ X์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 30๋„ ๊ธฐ์šธ์–ด์ง‘๋‹ˆ๋‹ค.

3.skewY

skewY ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ๋งŒ ๊ธฐ์šธ์ž…๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

transform: skewY(y-angle);


์˜ˆ์ œ

.example {
  transform: skewY(20deg); /* Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 20๋„ ๊ธฐ์šธ์ž„ */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š” .example ์š”์†Œ๊ฐ€ Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 20๋„ ๊ธฐ์šธ์–ด์ง‘๋‹ˆ๋‹ค.


์ข…ํ•ฉ ์˜ˆ์ œ

.example {
  width: 100px;
  height: 100px;
  background-color: blue;
  transform: skew(30deg, 20deg);
}

.example-x {
  transform: skewX(30deg);
}

.example-y {
  transform: skewY(20deg);
}

Transform ์†์„ฑ์˜ ๊ณ ๊ธ‰ ์‚ฌ์šฉ๋ฒ• ๐Ÿ’ก

๋‹ค์ค‘ ๋ณ€ํ˜• ํšจ๊ณผ ๊ฒฐํ•ฉํ•˜๊ธฐ โž•

์—ฌ๋Ÿฌ ๋ณ€ํ˜• ํšจ๊ณผ๋ฅผ ํ•˜๋‚˜์˜ ์š”์†Œ์— ๋™์‹œ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.element {
    transform: translate(50px, 50px) rotate(45deg) scale(1.5);
}


์˜ˆ์ œ

<div class="box">Box</div>

<style>
  .box {
    width: 100px;
    height: 100px;
    background-color: orange;
    transform: translate(50px, 50px) rotate(45deg) scale(1.5);
  }
</style>

transform-origin ์†์„ฑ์œผ๋กœ ๋ณ€ํ˜• ๊ธฐ์ค€์  ์„ค์ •ํ•˜๊ธฐ ๐ŸŽฏ

transform-origin ์†์„ฑ์€ CSS์—์„œ transform ์†์„ฑ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ณ€ํ˜•์ด ์ ์šฉ๋  ๋•Œ ๊ธฐ์ค€์ด ๋˜๋Š” ์›์ ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ, ๋ณ€ํ˜•์€ ์š”์†Œ์˜ ์ค‘์‹ฌ์„ ๊ธฐ์ค€์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€๋งŒ, transform-origin์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

transform-origin: x y z;
  • x: X์ถ• ๋ฐฉํ–ฅ์˜ ๊ธฐ์ค€์ ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 50%๋กœ, ์š”์†Œ์˜ ๊ฐ€๋กœ ์ค‘์‹ฌ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์œ„๋กœ๋Š” px, %, left, center, right ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • y: Y์ถ• ๋ฐฉํ–ฅ์˜ ๊ธฐ์ค€์ ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 50%๋กœ, ์š”์†Œ์˜ ์„ธ๋กœ ์ค‘์‹ฌ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์œ„๋กœ๋Š” px, %, top, center, bottom ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • z: Z ์ถ• ๋ฐฉํ–ฅ์˜ ๊ธฐ์ค€์ ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 0์œผ๋กœ, 3D ๋ณ€ํ™˜์˜ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹จ์œ„๋กœ๋Š” px, % ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์˜ˆ์ œ

.example {
  width: 100px;
  height: 100px;
  background-color: blue;
  transform: rotate(45deg);
  transform-origin: top left; /* ๋ณ€ํ˜•์˜ ๊ธฐ์ค€์ ์„ ์™ผ์ชฝ ์ƒ๋‹จ ๋ชจ์„œ๋ฆฌ๋กœ ์„ค์ • */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ๊ฐ€ ์™ผ์ชฝ ์ƒ๋‹จ ๋ชจ์„œ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ 45๋„ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค.


X์ถ•๊ณผ Y์ถ•์„ ํผ์„ผํŠธ๋กœ ์„ค์ •

.example {
  width: 100px;
  height: 100px;
  background-color: blue;
  transform: rotate(45deg);
  transform-origin: 75% 25%; /* ๋ณ€ํ˜•์˜ ๊ธฐ์ค€์ ์„ ์š”์†Œ์˜ ๊ฐ€๋กœ 75%, ์„ธ๋กœ 25% ์ง€์ ์œผ๋กœ ์„ค์ • */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ๊ฐ€ ๊ฐ€๋กœ 75%, ์„ธ๋กœ 25% ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ 45๋„ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค.


X, Y, Z ์ถ• ์„ค์ •

.example {
  width: 100px;
  height: 100px;
  background-color: blue;
  transform: rotate3d(1, 1, 1, 45deg);
  transform-origin: 50% 50% 100px; /* ๋ณ€ํ˜•์˜ ๊ธฐ์ค€์ ์„ Z์ถ• 100px๋กœ ์„ค์ • */
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š”. example ์š”์†Œ๊ฐ€ X, Y, Z ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ 45๋„ ํšŒ์ „ํ•˜๋ฉฐ, ๊ธฐ์ค€์ ์€ Z ์ถ•์œผ๋กœ 100px ๋–จ์–ด์ง„ ์ง€์ ์ž…๋‹ˆ๋‹ค.


์ข…ํ•ฉ ์˜ˆ์ œ

.example-center {
  width: 100px;
  height: 100px;
  background-color: blue;
  transform: rotate(45deg);
  transform-origin: center; /* ๊ธฐ๋ณธ๊ฐ’, ์š”์†Œ์˜ ์ค‘์‹ฌ์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „ */
}

.example-top-left {
  transform: rotate(45deg);
  transform-origin: top left; /* ์™ผ์ชฝ ์ƒ๋‹จ ๋ชจ์„œ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „ */
}

.example-percentage {
  transform: rotate(45deg);
  transform-origin: 75% 25%; /* ๊ฐ€๋กœ 75%, ์„ธ๋กœ 25% ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „ */
}

.example-3d {
  transform: rotate3d(1, 1, 1, 45deg);
  transform-origin: 50% 50% 100px; /* Z์ถ•์œผ๋กœ 100px ๋–จ์–ด์ง„ ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „ */
}

3D ๋ณ€ํ˜• ํšจ๊ณผ๐ŸŒ€

3D ๋ณ€ํ˜• ํšจ๊ณผ๋Š” CSS์˜ transform ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ 3์ฐจ์› ๊ณต๊ฐ„์—์„œ ๋ณ€ํ˜•์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์š”์†Œ๋ฅผ ํšŒ์ „, ์ด๋™, ํฌ๊ธฐ ์กฐ์ • ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž…์ฒด์ ์ธ ์‹œ๊ฐ์  ํšจ๊ณผ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

rotate3d

rotate3d(x, y, z, angle): ์ง€์ •๋œ ์ถ•์„ ์ค‘์‹ฌ์œผ๋กœ ์š”์†Œ๋ฅผ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค. x, y, z๋Š” ํšŒ์ „์ถ•์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, angle์€ ํšŒ์ „ ๊ฐ๋„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

transform: rotate3d(1, 1, 1, 45deg);

translate3d

translate3d(x, y, z): X, Y, Z ์ถ•์„ ๋”ฐ๋ผ ์š”์†Œ๋ฅผ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค. x, y, z๋Š” ๊ฐ๊ฐ X์ถ•, Y์ถ•, Z ์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฑฐ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

transform: translate3d(100px, -50px, 200px);

scale3d

 

scale3d(x, y, z): X, Y, Z ์ถ•์„ ๋”ฐ๋ผ ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. x, y, z๋Š” ๊ฐ๊ฐ X์ถ•, Y์ถ•, Z ์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋น„์œจ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

transform: scale3d(2, 1.5, 0.5);

perspective

perspective: 3D ๋ณ€ํ™˜ ํšจ๊ณผ๋ฅผ ๋” ๊นŠ์ด๊ฐ ์žˆ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‹œ์ ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์š”์†Œ์˜ ์ž์‹ ์š”์†Œ๋“ค์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

transform: perspective(1000px);


์ข…ํ•ฉ ์˜ˆ์ œ

.example {
  width: 100px;
  height: 100px;
  background-color: blue;
  transform: rotate3d(1, 1, 1, 45deg) translate3d(100px, -50px, 200px) scale3d(2, 1.5, 0.5);
}

์œ„ ์˜ˆ์ œ์—์„œ๋Š”. example ์š”์†Œ๋ฅผ X, Y, Z ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „์‹œํ‚ค๊ณ , ์ด๋™์‹œํ‚ค๋ฉฐ, ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ž…์ฒด์ ์ธ ๋ณ€ํ˜• ํšจ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด ๋ƒ…๋‹ˆ๋‹ค.

์‹ค์ „ ์˜ˆ์ œ์™€ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ๐Ÿ’ป

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        .container {
            display: flex;
            justify-content: space-around;
            align-items: center;
            height: 100vh;
        }
        .box {
            width: 100px;
            height: 100px;
            background-color: red;
            transition: transform 0.5s;
        }
        .box:hover {
            transform: translate(50px, 50px) rotate(45deg) scale(1.5);
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="box">Hover me!</div>
    </div>
</body>
</html>

์œ„์˜ ์˜ˆ์ œ์—์„œ๋Š” ๋งˆ์šฐ์Šค๋ฅผ ์š”์†Œ ์œ„์— ์˜ฌ๋ ธ์„ ๋•Œ, ์š”์†Œ๊ฐ€ ์ด๋™, ํšŒ์ „, ํ™•๋Œ€๋˜๋Š” ํšจ๊ณผ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

css transform

Transform ์†์„ฑ์˜ ์žฅ์ ๊ณผ ์ฃผ์˜์‚ฌํ•ญโš ๏ธ

Transform ์†์„ฑ์˜ ์ฃผ์š” ์žฅ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ: ๋Œ€๋ถ€๋ถ„์˜ ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ ์ตœ์ ํ™”: GPU๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์‹œ ์ฃผ์˜ํ•  ์ :

  • ๊ณผ๋„ํ•œ ์‚ฌ์šฉ ์ž์ œ: ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์€ ๋ณ€ํ˜• ํšจ๊ณผ๋Š” ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ: ์˜ค๋ž˜๋œ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๋‚ด์šฉ๐Ÿ‘€

css transform

728x90
๋ฐ˜์‘ํ˜•