๐Ÿ“– TIL - CSS๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๋ฏธ์Šคํ„ฐ๋ฆฌํ•œ ํฐ ์„  ๋ฌธ์ œ ๐Ÿ”

์Š˜ยท2025๋…„ 1์›” 13์ผ

๐Ÿ“– TIL

๋ชฉ๋ก ๋ณด๊ธฐ
24/90

์ด๋ฏธ์ง€์™€ ์ฝ˜ํ…์ธ  ์‚ฌ์ด ํฐ ์„  ํ•ด๊ฒฐํ•˜๊ธฐ: CSS ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๐ŸŽจ

๐Ÿ“Œ ๋ฌธ์ œ ์„ค๋ช…

์ด๋ฏธ์ง€ ์˜์—ญ๊ณผ ์ฝ˜ํ…์ธ  ์˜์—ญ ์‚ฌ์ด์— ์˜๋„ํ•˜์ง€ ์•Š์€ ํฐ ์„ ์ด ๋ฐœ์ƒํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ์ด์Šˆ

๋ฐœ์ƒ ์›์ธ

  • ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํ”ฝ์…€ ๊ณ„์‚ฐ ์ฐจ์ด
  • ์ธ๋ผ์ธ ์š”์†Œ ์‚ฌ์ด์˜ ๊ณต๋ฐฑ ๋ฌธ์ œ
  • ์ด๋ฏธ์ง€ ํ•˜๋‹จ ๊ธฐ๋ณธ ์—ฌ๋ฐฑ

๐Ÿ’ก ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1. ๊ธฐ๋ณธ์ ์ธ ํ•ด๊ฒฐ์ฑ…

.modal-content {
  gap: 0;              /* flex gap ์ œ๊ฑฐ */
  font-size: 0;        /* ์ธ๋ผ์ธ ์š”์†Œ ์‚ฌ์ด ๊ณต๋ฐฑ ์ œ๊ฑฐ */
}

.modal-detail {
  font-size: 1rem;     /* ์ž์‹ ์š”์†Œ ํฐํŠธ ์‚ฌ์ด์ฆˆ ๋ณต๊ตฌ */
}

2. ํฌ๊ด„์ ์ธ ํ•ด๊ฒฐ์ฑ…

.modal-content {
  background: #1a1a1a;  /* ๋ฐฐ๊ฒฝ์ƒ‰์„ ๋ถ€๋ชจ์™€ ๋™์ผํ•˜๊ฒŒ */
}

.modal-img {
  margin: 0;           /* ๋งˆ์ง„ ์ œ๊ฑฐ */
  font-size: 0;        /* ์ด๋ฏธ์ง€ ํ•˜๋‹จ ๊ฐ„๊ฒฉ ์ œ๊ฑฐ */
}

.modal-img img {
  vertical-align: top; /* ์ด๋ฏธ์ง€ ํ•˜๋‹จ ๊ฐ„๊ฒฉ ์ œ๊ฑฐ */
  margin-bottom: -1px; /* ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ๋ณด์ • */
}

3. ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ํ™œ์šฉํ•œ ํ•ด๊ฒฐ์ฑ…

.modal-wrapper {
  transform: translate(-50%, -50%) translateZ(0);  /* ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ํ™œ์„ฑํ™” */
  backface-visibility: hidden;                     /* ๋ Œ๋”๋ง ์ตœ์ ํ™” */
  -webkit-font-smoothing: antialiased;            /* ํฐํŠธ ๋ Œ๋”๋ง ๊ฐœ์„  */
}

๐Ÿ” ์ฝ”๋“œ ์„ค๋ช…

1. ๊ธฐ๋ณธ์ ์ธ ํ•ด๊ฒฐ์ฑ…์˜ ์›๋ฆฌ

  • gap ์†์„ฑ ์ œ๊ฑฐ๋กœ flex ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐ„๊ฒฉ ์ œ์–ด
  • font-size: 0์œผ๋กœ ์ธ๋ผ์ธ ์š”์†Œ ์‚ฌ์ด ๊ณต๋ฐฑ ์ œ๊ฑฐ
  • ํ•„์š”ํ•œ ์š”์†Œ์—๋งŒ font-size ๋ณต๊ตฌํ•˜์—ฌ ํ…์ŠคํŠธ ํ‘œ์‹œ

2. ํฌ๊ด„์ ์ธ ํ•ด๊ฒฐ์ฑ…์˜ ํŠน์ง•

  • ๋ฐฐ๊ฒฝ์ƒ‰ ํ†ต์ผ๋กœ ์‹œ๊ฐ์  ์ผ๊ด€์„ฑ ํ™•๋ณด
  • margin๊ณผ font-size ์กฐ์ ˆ๋กœ ๊ฐ„๊ฒฉ ์™„๋ฒฝ ์ œ๊ฑฐ
  • vertical-align ์†์„ฑ์œผ๋กœ ์ด๋ฏธ์ง€ ์ •๋ ฌ ๋ณด์ •

3. ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ํ•ด๊ฒฐ์ฑ…์˜ ์žฅ์ 

  • GPU ๊ฐ€์†์œผ๋กœ ๋ Œ๋”๋ง ์„ฑ๋Šฅ ํ–ฅ์ƒ
  • ํ”ฝ์…€ ๊ณ„์‚ฐ์˜ ์ •ํ™•๋„ ๊ฐœ์„ 
  • ๋ถ€๋“œ๋Ÿฌ์šด ํฐํŠธ ๋ Œ๋”๋ง

โœจ ์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์šด ์ 

  • ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •์—์„œ์˜ ํ”ฝ์…€ ๊ณ„์‚ฐ ๋ฐฉ์‹
  • CSS ์†์„ฑ์˜ ์„ธ๋ฐ€ํ•œ ์ œ์–ด ๋ฐฉ๋ฒ•
  • ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ํ™œ์šฉํ•œ ์ตœ์ ํ™” ๊ธฐ๋ฒ•

๐Ÿš€ ์ด๋Ÿฐ ์ ์ด ํšจ์œจ์ ์ด์—์š”

  • ์—ฌ๋Ÿฌ ํ•ด๊ฒฐ์ฑ…์„ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์กฐํ•ฉ ๊ฐ€๋Šฅ
  • ์„ฑ๋Šฅ๊ณผ ์‹œ๊ฐ์  ํ’ˆ์งˆ ๋ชจ๋‘ ๊ฐœ์„ 
  • ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ ํ™•๋ณด
  • ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์œผ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”

โญ๏ธ ์ฐธ๊ณ  ์ž๋ฃŒ

  • CSS Box Model ๋ช…์„ธ
  • ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ํ”„๋กœ์„ธ์Šค
  • GPU ๊ฐ€์†๊ณผ CSS ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ฐ€์ด๋“œ
profile
์ฃผ๋‹ˆ์–ด ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ์žฅ๊ธฐ ๊ธฐ๋ก๊ธฐ๋ก

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