๐ŸŽจCSS | ์›๊ทผ๋ฒ• - perspective

์›์˜ยท2023๋…„ 3์›” 30์ผ
3

์ƒˆ๋กœ์šด ์ง€์‹๐Ÿ’ก

๋ชฉ๋ก ๋ณด๊ธฐ
2/15
post-thumbnail

๐Ÿ”Žperspective ์†์„ฑ

  • z=0์ธ ํ‰๋ฉด๊ณผ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ(๊ฐ’์ด ํด์ˆ˜๋ก ๋ฉ€๋ฆฌ์„œ ๋ณด๋Š” ๊ฒƒ)๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์›๊ทผ๊ฐ์„ ์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ๊ฐ’์ด ์ž‘์„์ˆ˜๋ก ๊ฐ€๊นŒ์ด์„œ ๋ณด๋Š” ๊ฒƒ์œผ๋กœ, ํšจ๊ณผ๊ฐ€ ๋” ๊ทน์ ์œผ๋กœ ๋‚˜ํƒ€๋‚จ
  • container(๋ถ€๋ชจ ์š”์†Œ)์— perspective ์†์„ฑ์„ ์ฃผ๊ณ ,
    ์›๊ทผ๊ฐ์„ ์ค„ ์ž์‹ ์š”์†Œ์— transform ์†์„ฑ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ


๐Ÿ’กtransform: translate3d()

  • perspective ์†์„ฑ์„ ์ฃผ๋ฉด z์ถ•์œผ๋กœ ์›€์ง์—ฌ์„œ ๊ฑฐ๋ฆฌ๊ฐ์„ ์ค„ ์ˆ˜ ์žˆ์Œ
.๋ถ€๋ชจ์š”์†Œ {
	perspective: 500px;
}
.์ž์‹์š”์†Œ {
	transform: translate3d(0px,0px,0px);
}

  • translate3d์˜ x, y ๊ฐ’์„ ๋ฐ”๊ฟจ์„ ๋•Œ : perspective ์—ฌ๋ถ€์™€ ์ƒ๊ด€ ์—†์ด ๋™์ผํ•˜๊ฒŒ ๋ณ€๊ฒฝ
    x, y ์ถ•์œผ๋กœ์˜ ์ด๋™์€ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ์™€ ์ƒ๊ด€ ์—†๊ธฐ ๋•Œ๋ฌธ
  • translate3d์˜ z ๊ฐ’์„ ๋ฐ”๊ฟจ์„ ๋•Œ : perspective ์†์„ฑ์„ ์ค€ ์ž์‹์š”์†Œ๋งŒ ํ˜„์žฌ ๊ฑฐ๋ฆฌ์—์„œ 100px ๊ฐ€๊นŒ์›Œ์ง„ ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ
    perspective ์†์„ฑ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด, ๊ฑฐ๋ฆฌ์˜ ๊ฐœ๋…์ด ์—†๊ธฐ ๋•Œ๋ฌธ

๐Ÿ’กtransform: rotate()

  • ์ถ•์„ ์ค‘์‹ฌ์œผ๋กœ ๊ฐ๋„๋งŒํผ ํšŒ์ „์‹œํ‚ฌ ๋•Œ perspective ์†์„ฑ์„ ์ฃผ๋ฉด ๊ฑฐ๋ฆฌ๊ฐ์„ ๋Š๋ผ๋ฉด์„œ ํšŒ์ „
.๋ถ€๋ชจ์š”์†Œ {
	perspective: 500px;
}
.์ž์‹์š”์†Œ {
	transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
}
  • ์ถ• ๊ธฐ์ค€

  • rotateX(๊ฐ’) 0deg ~ 360deg ๋ณ€๊ฒฝ

  • rotateY(๊ฐ’) 0deg ~ 360deg ๋ณ€๊ฒฝ

  • rotateZ(๊ฐ’) 0deg ~ 360deg ๋ณ€๊ฒฝ

  • x, y ์ถ•์œผ๋กœ ํšŒ์ „ํ•  ๋•Œ : perspective ์†์„ฑ์„ ์ค€ ์ž์‹์š”์†Œ๋Š” 500px ๋–จ์–ด์ง„ ๊ณณ์—์„œ ๋ดค์„ ๋•Œ ํšŒ์ „ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฑฐ๋ฆฌ๊ฐ์ด ๋Š๊ปด์ง€๊ฒŒ ํšŒ์ „

  • z ์ถ•์œผ๋กœ ํšŒ์ „ํ•  ๋•Œ : perspective ์—ฌ๋ถ€์™€ ์ƒ๊ด€ ์—†์ด ๋™์ผํ•˜๊ฒŒ ํšŒ์ „
    z์ถ•์œผ๋กœ์˜ ํšŒ์ „์€ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ์™€ ์ƒ๊ด€์—†์ด ๋™์ผํ•˜๊ฒŒ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ˆˆ์— ๋ณด์ด๋Š” ๋ณ€ํ™”๋Š” ์—†์Œ



๐Ÿ”Ž์†Œ์‹ค์ 

  • ์›๊ทผ๊ฐ์ด ์ ์šฉ๋œ ๋ฌผ์ฒด๋ฅผ ๋ฉ€๋ฆฌ ํ‰ํ–‰ํ•˜๊ฒŒ ์ด๋™์‹œํ‚ฌ ๋•Œ, ์•„์ฃผ ์ž‘์•„์ ธ ๋ณด์ด์ง€ ์•Š์„ ์ •๋„์˜ ๋๋ถ€๋ถ„์— ์ž„์˜๋กœ ์ฐ์€ ์ 

๐Ÿ’กtransform: translateZ()

  • ์œ„ ๊ฒฝ์šฐ์—์„œ translateZ(100px) ์†์„ฑ์„ ์คฌ์„ ๋•Œ,
    ๋‹น์—ฐํžˆ ํ˜„์žฌ ์š”์†Œ์˜ ์ค‘์‹ฌ ์œ„์น˜ ๊ธฐ์ค€์œผ๋กœ 100px ๊ฐ€๊นŒ์›Œ์กŒ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,
    ์‚ฌ์‹ค์€ ์†Œ์‹ค์  ๊ธฐ์ค€์œผ๋กœ ๊ฐ€๊นŒ์›Œ์ง
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œ์‹ค์ ์€ ๋ถ€๋ชจ์˜ ์ค‘์‹ฌ์œ„์น˜
  • translate3d(100px, 100px, 100px) ์™€ ๋น„๊ต
    • x, y ์˜ฎ๊ฒจ์ง„ ๊ณณ์˜ ์ค‘์‹ฌ(๋…ธ๋ž€์ )์„ ๊ธฐ์ค€์œผ๋กœ 100px ๊ฐ€๊นŒ์›Œ ์ง€๋Š” ๊ฒƒ์ด ์•„๋‹˜!
    • ์†Œ์‹ค์ (๋นจ๊ฐ„์ )์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€๊นŒ์›Œ์ง!!

๐Ÿ’กtransform: rotate()

  • rotate() ๋„ ์†Œ์‹ค์ ์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „


  • ์•„๋ฌด ํšŒ์ „๋„ ์‹œํ‚ค์ง€ ์•Š์•˜์„ ๋•Œ
.๋ถ€๋ชจ์š”์†Œ {
	perspective: 500px;
}
.์ž์‹์š”์†Œ {
	transform: rotateY(0deg);
}

  • 90deg ํšŒ์ „์‹œ์ผฐ์„ ๋•Œ ๊ทธ๋ฆผ์ด ์กฐ๊ธˆ ๋ฌด์„œ์›Œ๋„ ์–‘ํ•ด๋ฐ”๋ž๋‹ˆ๋‹คใ…Žใ…Ž
    • ๋„ค๋ชจ๊ฐ€ 90deg ํšŒ์ „ํ–ˆ์„ ๋•Œ ์ผ์ง์„ ์œผ๋กœ ๋–จ์–ด์ ธ ์žˆ๋‹ค๋ฉด ์™„์ „ํ•œ ์„ ์ด ๋˜์–ด ๋ณด์ด์ง€ ์•Š์Œ
    • ๋งŒ์•ฝ ๊ทธ ์ƒํƒœ์—์„œ ๊ทธ ๋„ค๋ชจ๋ฅผ ์ƒํ•˜์ขŒ์šฐ๋กœ ์›€์ง์ด๋ฉด ๋ˆˆ ์œ„์น˜(์†Œ์‹ค์ )์—์„œ ์œ„์˜ ๋ชจ์–‘๋Œ€๋กœ ๋ณด์ž„
  .์ž์‹์š”์†Œ {
	transform: rotateY(90deg);
}

  • 45deg ํšŒ์ „์‹œ์ผฐ์„ ๋•Œ ๊ทธ๋ฆผ์ด ์กฐ๊ธˆ ๋” ๋ฌด์„œ์›Œ์กŒ์–ด์š” ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค ใ…Žใ…Ž
    • ์ด ๋ถ€๋ถ„์ด ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ๋Š”๋ฐ,
      ํ˜„์žฌ ๋ˆˆ์ด ์žˆ๋Š” ์‹œ์ ์ด ์†Œ์‹ค์ ์ด๊ณ  (๊ฐ€์žฅ์˜ค๋ฅธ์ชฝ๋ ์ค‘์•™ ์•„๋‹˜!) ์ •์ค‘์•™์˜ ๋„ค๋ชจ๋ฅผ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ด๋™์‹œ์ผฐ์„ ๋•Œ ์†Œ์‹ค์ ์—์„œ ๋ณด์ด๋Š” ๋ชจ์–‘๋Œ€๋กœ ๋ณด์ž„
  .์ž์‹์š”์†Œ {
	transform: rotateY(45deg);
}

๐Ÿ’กperspective-origin : ์†Œ์‹ค์  ์„ค์ •

  • ์†Œ์‹ค์ ์„ ์„ค์ •ํ•˜๋Š” ์†์„ฑ์œผ๋กœ, ๊ธฐ๋ณธ๊ฐ’์€ perspective-origin: 50% 50% (๋ถ€๋ชจ์˜ ์ค‘์•™)
.๋ถ€๋ชจ์š”์†Œ {
	perspective: 500px;
  	perspective-origin: 100% 100%;
}
.์ž์‹์š”์†Œ {
	transform: rotateY(90deg);
}
  • ์œ„์˜ ์˜ˆ์ œ rotateY(90deg) ์—์„œ ์†Œ์‹ค์ ์˜ ์œ„์น˜๋งŒ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ๊ฐ€์žฅ ๋ฐ‘์œผ๋กœ ๋ณ€๊ฒฝ

    perspective ์†์„ฑ์„ ํ™œ์šฉํ•ด ํœ˜๋ฆฌ๋ฆญ ๋Œ์•„๊ฐ€๋Š” ์นด๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์•˜๋Š”๋ฐ..๐Ÿ˜š
    ํ˜น์‹œ ๊ถ๊ธˆํ•˜์‹œ๋‹ค๋ฉด?? ๐Ÿ”—ํด๋ฆญ
profile
ํ™”์ดํŒ…~~^ใ…^/

0๊ฐœ์˜ ๋Œ“๊ธ€