[๐ŸฆFE DAY8(2)] CSS Box Model-๋ฐ•์Šค์˜ ๊ตฌ์„ฑ๊ณผ ์œ ํ˜•

HTML ์š”์†Œ๋“ค์€ ๋ชจ๋‘ ์•ˆ์— ๋ฐ•์Šค๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ์‚ฌ์ดํŠธ์˜ UI๋“ค์€ ๋ชจ๋‘ ๋ฐ•์Šค๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค!

1. ๋ฐ•์Šค์˜ ๊ตฌ์„ฑ

  • content box
    : ์š”์†Œ์˜ ์ฝ˜ํ…์ธ ๊ฐ€ ๋˜๋Š” ์˜์—ญ. width, height๋กœ ํฌ๊ธฐ ์กฐ์ ˆ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • padding box
    : ์ฝ˜ํ…์ธ ์™€ ํ…Œ๋‘๋ฆฌ ์‚ฌ์ด์˜ ๊ณต๊ฐ„. <padding>๊ณผ ๊ด€๋ จ ์†์„ฑ์œผ๋กœ ํฌ๊ธฐ ์กฐ์ ˆ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • border box
    : ์ฝ˜ํ…์ธ ์™€ ํŒจ๋”ฉ์„ ๋‘˜๋Ÿฌ์‹ธ๋Š” ํ…Œ๋‘๋ฆฌ. <boder>์™€ ๊ด€๋ จ ์†์„ฑ์œผ๋กœ ํฌ๊ธฐ์™€ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • margin box
    : ๋ณด๋” ๋ฐ”๊นฅ ์ชฝ ์˜์—ญ์œผ๋กœ ์š”์†Œ์™€ ์š”์†Œ ์‚ฌ์ด์˜ ๊ณต๋ฐฑ. <margin>๊ณผ ๊ด€๋ จ ์†์„ฑ์œผ๋กœ ํฌ๊ธฐ์กฐ์ ˆ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

(์ด๋ฏธ์ง€ ์ถœ์ฒ˜: ์ œ์ฃผ์ฝ”๋”ฉ๋ฒ ์ด์Šค์บ ํ”„)


2. ๋ฐ•์Šค์˜ ์œ ํ˜•

  1. ๋ธ”๋ก ๋ฐ•์Šค

    • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์„ ์–‘ ์˜†์œผ๋กœ 100% ์‚ฌ์šฉํ•œ๋‹ค.
      (์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ณต๊ฐ„์€ margin์œผ๋กœ ์ฑ„์›€)

    • width, height๋กœ ํฌ๊ธฐ์กฐ์ ˆ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • padding, margin, border๋กœ ๋ฐ•์Šค ์Šคํƒ€์ผ์„ ์ปจํŠธ๋กคํ•  ์ˆ˜ ์žˆ๊ณ , ํ•ด๋‹น ์†์„ฑ์ด ์ ์šฉ๋˜๋ฉด ๋‹ค๋ฅธ ์š”์†Œ๋“ค์„ ๋ฐ€์–ด๋ƒ„.

      โ†‘ h1์— margin์„ ์ƒํ•˜์ขŒ์šฐ 50px์”ฉ ์ฃผ์—ˆ๋Š”๋ฐ ๋ฐ‘์— ์žˆ๋Š” p ์˜์—ญ์„ ์นจ๋ฒ”ํ•˜์ง€ ์•Š๊ณ  ๋ฐ€์–ด๋‚ธ๋‹ค.

  2. ์ธ๋ผ์ธ ๋ฐ•์Šค

    • ์ธ๋ผ์ธ ๋ฐ•์Šค๋Š” ์ปจํ…์ธ  ํฌ๊ธฐ๋งŒํผ์˜ ํฌ๊ธฐ๋งŒ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ์ค„์— ์—ฌ๋Ÿฌ ์ธ๋ผ์ธ๋ฐ•์Šค๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

    • width, height๋กœ ํฌ๊ธฐ์กฐ์ ˆ์„ ํ•  ์ˆ˜ ์—†๋‹ค.

    • padding, border -> ์‚ฌ์šฉ ๊ฐ€๋Šฅ
      margin -> ์ขŒ์šฐ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ (์ƒํ•˜๋Š” x)
      ํ•ด๋‹น ์†์„ฑ๋“ค์˜ '์ƒํ•˜' ๊ฐ’์€ ๋‹ค๋ฅธ ์š”์†Œ๋“ค์„ ๋ฐ€์–ด๋‚ด์ง€ ์•Š๋Š”๋‹ค.

      โ†‘ span์— padding์„ ์ƒํ•˜์ขŒ์šฐ๋กœ 50px์”ฉ ์ฃผ์—ˆ๋Š”๋ฐ ๋ฐ‘์— ์žˆ๋Š” ์š”์†Œ์˜ ์˜์—ญ์„ ์นจ๋ฒ”ํ–ˆ๋‹ค (๋ฐ€์–ด๋‚ด์ง€ ์•Š์Œ). ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ์ƒํ•˜๋กœ๋Š” ๋‹ค๋ฅธ ์š”์†Œ์˜ ์˜์—ญ์„ ๋ฐ€์–ด๋‚ด์ง€ ์•Š๊ณ  ์นจ๋ฒ”ํ•˜์ง€๋งŒ ์ขŒ์šฐ๋กœ๋Š” ๋‹ค๋ฅธ ์š”์†Œ์˜ ์˜์—ญ์„ ์นจ๋ฒ”ํ•˜์ง€ ์•Š๊ณ  ๋ฐ€์–ด๋‚ธ๋‹ค.

2.1 display ์†์„ฑ

display์†์„ฑ์œผ๋กœ ๋ฐ•์Šค์˜ ์„ฑ์งˆ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
ํฌ๊ฒŒ ์™ธ๋ถ€ ๋””์Šคํ”Œ๋ ˆ์ด ํƒ€์ž…๊ณผ ๋‚ด๋ถ€ ๋””์Šคํ”Œ๋ ˆ์ด ํƒ€์ž…์œผ๋กœ ๋‚˜๋‰œ๋‹ค.

  1. ์™ธ๋ถ€ ๋””์Šคํ”Œ๋ ˆ์ด ํƒ€์ž…
    : ์™ธ๋ถ€์˜ ๋‹ค๋ฅธ ๋ฐ•์Šค๋“ค๊ณผ์˜ ๋ฐฐ์น˜์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.

    • 'inline'์œผ๋กœ ๋ฐ•์Šค์˜ ์œ ํ˜• ์ง€์ •ํ•˜๊ธฐ
    div { display: inline }
    • 'block'์œผ๋กœ ๋ฐ•์Šค์˜ ์œ ํ˜• ์ง€์ •ํ•˜๊ธฐ
    div { display: block }
    • 'inline-block'์œผ๋กœ ๋ฐ•์Šค์˜ ์œ ํ˜• ์ง€์ •ํ•˜๊ธฐ
    div { display: inline-block }

    inline-block
    : inline๊ณผ block์˜ ํŠน์ง•์„ ๋™์‹œ์— ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ•์Šค ์œ ํ˜•

    • inline ์ฒ˜๋Ÿผ ํ•œ ์ค„์— ์—ฌ๋Ÿฌ ์š”์†Œ๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
    • block ์ฒ˜๋Ÿผ width, height, margin, padding ๋“ฑ ๋ชจ๋“  ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, padding, margin ์†์„ฑ์ด ์ ์šฉ๋˜๋ฉด ๋‹ค๋ฅธ ์š”์†Œ์˜ ์˜์—ญ์„ ์นจ๋ฒ”ํ•˜์ง€ ์•Š๊ณ  ๋ฐ€์–ด๋‚ธ๋‹ค.

    (์ด๋ฏธ์ง€ ์ถœ์ฒ˜: ์œ„๋‹ˆ๋ธŒ)

  2. ๋‚ด๋ถ€ ๋””์Šคํ”Œ๋ ˆ์ด ํƒ€์ž…

    • flex: ๋‚ด๋ถ€ ์ž์‹ ์š”์†Œ๋“ค์˜ ์œ„์น˜๋ฅผ ๋ถ€๋ชจ ์š”์†Œ์•ˆ์—์„œ x์ถ• ๋˜๋Š” y์ถ•์œผ๋กœ ๋ฐฐ์น˜ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.
    • grid: ๋‚ด๋ถ€ ์ž์‹ ์š”์†Œ๋“ค์˜ ์œ„์น˜๋ฅผ ๋ถ€๋ชจ ์š”์†Œ์•ˆ์—์„œ x์ถ•๊ณผ y์ถ•์„ ์ด์šฉํ•ด ๋ฐฐ์น˜ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ