Box Model

1. ๊ฐœ์š”

์›น ๋ฌธ์„œ์˜ ๋ธ”๋ก ๋ ˆ๋ฒจ ์š”์†Œ๋Š” ๋ชจ๋‘ Box ํ˜•ํƒœ์˜ ์˜์—ญ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ. ์Šคํƒ€์ผ ์‹œํŠธ์—์„œ ์ด๋ ‡๊ฒŒ Box ํ˜•ํƒœ์ธ ์š”์†Œ๋ฅผ ๋ฐ•์Šค ๋ชจ๋ธ ์š”์†Œ๋ผ๊ณ  ํ•จ. ์ด Box๋Š” ์ฝ˜ํ…์ธ (Content), ํŒจํŒ…(Padding), ํ…Œ๋‘๋ฆฌ(Border), ๋งˆ์ง„(Margin)๋กœ ๊ตฌ์„ฑ๋จ.

Box Model

Box Model์˜ ์ดํ•ด๋Š” ์•„๋ž˜์˜ 4๊ฐ€์ง€ ๋ช…์นญ์„ ์ดํ•ดํ•˜๋Š”๋ฐ์„œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

๋ช…์นญ
์„ค๋ช…

Content

์š”์†Œ์˜ ํ…์ŠคํŠธ๋‚˜ ์ด๋ฏธ์ง€ ๋“ฑ์˜ ์‹ค์ œ ๋‚ด์šฉ์ด ์œ„์น˜ํ•˜๋Š” ์˜์—ญ, width, height ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ–๋Š”๋‹ค.

Padding

ํ…Œ๋‘๋ฆฌ(Border) ์•ˆ์ชฝ์— ์œ„์น˜ํ•˜๋Š” ์š”์†Œ์˜ ๋‚ด๋ถ€ ์˜์—ญ์˜ ์—ฌ๋ฐฑ, padding ํ”„๋กœํผํ‹ฐ ๊ฐ’์€ ํŒจ๋”ฉ ์˜์—ญ์˜ ๋‘๊นจ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ๊ธฐ๋ณธ์ƒ‰์€ ํˆฌ๋ช…(transparent), ์š”์†Œ์— ์ ์šฉ๋œ ๋ฐฐ๊ฒฝ์˜ ์ปฌ๋Ÿฌ, ์ด๋ฏธ์ง€๋Š” ํŒจ๋”ฉ ์˜์—ญ๊นŒ์ง€ ์ ์šฉ

Border

ํ…Œ๋‘๋ฆฌ ์˜์—ญ์œผ๋กœ border ํ”„๋กœํผํ‹ฐ ๊ฐ’์€ ํ…Œ๋‘๋ฆฌ์˜ ๋‘๊ป˜๋ฅผ ์˜๋ฏธ

Margin

ํ…Œ๋‘๋ฆฌ(Border) ๋ฐ”๊นฅ์— ์œ„์น˜ํ•˜๋Š” ์š”์†Œ์˜ ์™ธ๋ถ€ ์—ฌ๋ฐฑ ์˜์—ญ, margin ํ”„๋กœํผํ‹ฐ ๊ฐ’์€ ๋งˆ์ง„ ์˜์—ญ์˜ ๋‘๊ป˜๋ฅผ ์˜๋ฏธ, ๊ธฐ๋ณธ์ ์œผ๋กœ ํˆฌ๋ช…(transparent)ํ•˜๋ฉฐ ๋ฐฐ๊ฒฝ์ƒ‰์„ ์ง€์ •ํ•  ์ˆ˜ ์—†์Œ

content, padding, border, margin
styled

์›น๋””์ž์ธ์€ ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ด์„ ๋ฐ•์Šค ๋ชจ๋ธ์„ ์ •์˜ํ•˜๊ณ  CSS ํ”„๋กœํผํ‹ฐ๋ฅผ ํ†ตํ•ด ์Šคํƒ€์ผ(๋ฐฐ๊ฒฝ, ํฐํŠธ์™€ ํ…์ŠคํŠธ ๋“ฑ)๊ณผ ์œ„์น˜ ๋ฐ ์ •๋ ฌ์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ


2. width / height ํ”„๋กœํผํ‹ฐ

๋ฐ•์Šค ๋ชจ๋ธ์—์„œ ์ฝ˜ํ…์ธ  ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•  ๋•Œ ๋„ˆ๋น„๋Š” width, ๋†’์ด๋Š” height ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•จ, ์ฝ˜ํ…์ธ ์˜ ์˜์—ญ์„ ๋Œ€์ƒ์„ ํ•˜๋Š” ์ด์œ ๋Š” box-sizing ํ”„๋กœํผํ‹ฐ์— ๊ธฐ๋ณธ๊ฐ’์ธ content-box๊ฐ€ ์ ์šฉ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ, box-sizing ํ”„๋กœํผํ‹ฐ์— border-box๋ฅผ ์ ์šฉํ•˜๋ฉด ์ฝ˜ํ…์ธ  ์˜์—ญ, padding, border๊ฐ€ ํฌํ•จ๋œ ์˜์—ญ์„ width / height ํ”„๋กœํผํ‹ฐ์˜ ๋Œ€์ƒ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ.

width์™€ height์˜ ์†์„ฑ๊ฐ’

์ข…๋ฅ˜
์„ค๋ช…

<ํฌ๊ธฐ>

๋„ˆ๋น„๊ฐ€ ๋†’์ด์˜ ๊ฐ’์„ px์ด๋‚˜ em ๋‹จ์œ„๋กœ ์ง€์ •

<๋ฐฑ๋ถ„์œจ>

๋ฐ•์Šค ๋ชจ๋ธ์„ ํฌํ•จํ•˜๋Š” ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋„ˆ๋น—๊ฐ’์ด๋‚˜ ๋†’์ž‡๊ฐ’์„ ๋ฐฑ๋ถ„์œจ(%)๋กœ ์ง€์ •

auto

๋ฐ•์Šค ๋ชจ๋ธ์˜ ๋„ˆ๋น—๊ฐ’๊ณผ ๋†’์ž‡๊ฐ’์ด ์ฝ˜ํ…์ธ ์˜ ์–‘์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๊ฒฐ์ •, ๊ธฐ๋ณธ๊ฐ’

๋งŒ์ผ width์™€ height๋กœ ์ง€์ •ํ•œ ์ฝ˜ํ…์ธ  ์˜์—ญ๋ณด๋‹ค ์‹ค์ œ ์ฝ˜ํ…์ธ ๊ฐ€ ํฌ๋ฉด ์ฝ˜ํ…์ธ  ์˜์—ญ์„ ๋„˜์น˜๊ฒŒ ๋œ๋‹ค. overflow:hidden;์„ ์ง€์ •ํ•˜๋ฉด ๋„˜์นœ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ์ถœ ์ˆ˜ ์žˆ๋‹ค.

width์™€ height ํ”„๋กœํผํ‹ฐ๋ฅผ ๋น„๋กฏํ•œ ๋ชจ๋“  ๋ฐ•์Šค๋ชจ๋ธ ๊ด€๋ จ ํ”„๋กœํผํ‹ฐ(margin, padding, border, box-sizing ๋“ฑ)๋Š” ์ƒ์†๋˜์ง€ ์•Š๋Š”๋‹ค.


3. margin / padding ํ”„๋กœํผํ‹ฐ

๋ฐ•์Šค ๋ชจ๋ธ์€ ์ƒํ•˜์ขŒ์šฐ 4๊ฐœ์˜ ๋ฐฉํ–ฅ์ด ์žˆ์–ด์„œ ํ…Œ๋‘๋ฆฌ๋‚˜ ๋งˆ์ง„, ํŒจ๋”ฉ ๋“ฑ์„ ์ง€์ •ํ•  ๋•Œ ํ•œ๊บผ๋ฒˆ์— ๋˜‘๊ฐ™์ด ์ง€์ •ํ•˜๊ฑฐ๋‚˜, ๋ชจ๋‘ ๋‹ค๋ฅด๊ฒŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ.

margin / padding

margin, padding์€ -top, -right, -bottom, -left 4๋ฐฉํ–ฅ์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ๊ฐ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ํ•œ ๋ฒˆ์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ.

  • 4๊ฐœ์˜ ๊ฐ’์„ ์ง€์ •ํ•  ๋•Œ - margin: 25px 50px 75px 100px;

    • ์ˆœ์„œ๋Œ€๋กœ top, right, bottom, left

  • 3๊ฐœ์˜ ๊ฐ’์„ ์ง€์ •ํ•  ๋•Œ - margin: 25px 50px 75px;

    • ์ˆœ์„œ๋Œ€๋กœ top, right/left, bottom

  • 2๊ฐœ์˜ ๊ฐ’์„ ์ง€์ •ํ•  ๋•Œ - margin: 25px 50px;

    • ์ˆœ์„œ๋Œ€๋กœ top/bottom, right/left

  • 1๊ฐœ์˜ ๊ฐ’์„ ์ง€์ •ํ•  ๋•Œ - margin: 25px;

    • top/bottom/right/left๋ฅผ ๋ชจ๋‘ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ์ง€์ •

4. border ํ”„๋กœํผํ‹ฐ


4-1. border-style

border-style ํ”„๋กœํผํ‹ฐ๋Š” ํ…Œ๋‘๋ฆฌ์˜ ์„ ์˜ ์Šคํƒ€์ผ์„ ์ง€์ •, border-style4-1 border-style ํ”„๋กœํผํ‹ฐ์˜ ๊ธฐ๋ณธ๊ฐ’์€ none์ด๋ฏ€๋กœ ์†์„ฑ๊ฐ’์„ ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ์ด๋‚˜ ๋‘๊ป˜๋ฅผ ์ง€์ •ํ•˜๋”๋„ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ.

MDN: border-stylearrow-up-right

border-style

4-2. border-width

border-width ํ”„๋กœํผํ‹ฐ๋Š” ํ…Œ๋‘๋ฆฌ์˜ ๋‘๊ป˜๋ฅผ ์ง€์ •, ํ”„๋กœํผํ‹ฐ ๊ฐ’์˜ ๊ฐฏ์ˆ˜์— ๋”ฐ๋ผ 4๊ฐœ ๋ฐฉํ–ฅ(top, right, left, bottom)์— ๋Œ€ํ•˜์—ฌ ์ง€์ •์ด ๊ฐ€๋Šฅ(margin, padding๊ณผ ๊ฐ™์Œ)

MDN:border-widtharrow-up-right

border-width

4-3. border-color

border-color ํ”„๋กœํผํ‹ฐ๋Š” ํ…Œ๋‘๋ฆฌ์˜ ์ƒ‰์ƒ์„ ์ง€์ •, ํ”„๋กœํผํ‹ฐ ๊ฐ’์˜ ๊ฐฏ์ˆ˜์— ๋”ฐ๋ผ 4๊ฐœ ๋ฐฉํ–ฅ(top, right, left, bottom)์— ๋Œ€ํ•˜์—ฌ ์ง€์ •์ด ๊ฐ€๋Šฅ(margin, padding๊ณผ ๊ฐ™์Œ)

MDN: border-colorarrow-up-right

border-color

4-4. border-radius

border-radius ํ”„๋กœํผํ‹ฐ๋Š” ํ…Œ๋‘๋ฆฌ ๋ชจ์„œ๋ฆฌ๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ํ‘œํ˜„ํ•˜๋„๋ก ์ง€์ •, ํ”„๋กœํผํ‹ฐ ๊ฐ’์€ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ด๋А ๋‹จ์œ„(px, em๋“ฑ)๊ณผ %๋ฅผ ์‚ฌ์šฉ, ๊ฐ๊ฐ์˜ ๋ชจ์„œ๋ฆฌ์— border-radius ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๊ณ  4๊ฐœ์˜ ๋ชจ์„œ๋ฆฌ๋ฅผ short-hand๋กœ ํ•œ๋ฒˆ์— ์ง€์ • ํ•  ์ˆ˜๋„ ์žˆ์Œ

๊ธฐ๋ณธํ˜• border-radius: <ํฌ๊ธฐ> | <๋ฐฑ๋ถ„์œจ>

MDN: border-radiusarrow-up-right

border-radius

๋‘๊ฐœ์˜ ๋ฐ˜์ง€๋ฆ„์„ ์ง€์ •ํ•˜์—ฌ ํƒ€์›ํ˜• ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ ์„ค์ •ํ•˜๊ธฐ

border-radius ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ผญ์ง“์ ์„ ํƒ€์› ํ˜•ํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํ•˜๋‚˜์˜ ๊ฐ’(๋ฐ˜์ง€๋ฆ„) ๋Œ€์‹  ํƒ€์›์˜ ๊ฐ€๋กœ ๋ฐ˜์ง€๋ฆ„๊ฐ’๊ณผ ์„ธ๋กœ ๋ฐ˜์ง€๋ฆ„๊ฐ’์„ /๋ฅผ ํ†ตํ•ด ๊ตฌ๋ถ„ํ•˜์—ฌ ๋„ฃ๋Š”๋‹ค. ๊ธฐ๋ณธํ˜• border-radius: <๊ฐ€๋กœ ๋ฐ˜์ง€๋ฆ„> / <์„ธ๋กœ ๋ฐ˜์ง€๋ฆ„> ๊ธฐ๋ณธํ˜• border-์œ„์น˜-radius: <๊ฐ€๋กœ ๋ฐ˜์ง€๋ฆ„> / <์„ธ๋กœ ๋ฐ˜์ง€๋ฆ„>

border-radius2

4-5. border

border ํ”„๋กœํผํ‹ฐ๋Š” border-width, border-style, border-color๋ฅผ ํ•œ๋ฒˆ์— ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ shorthand ํ”„๋กœํผํ‹ฐ์ด๋‹ค.

MDN: Border Shorthandarrow-up-right

๊ธฐ๋ณธํ˜• border: border-width border-style border-color

border shorthand

5. box-sizing ํ”„๋กœํผํ‹ฐ

box-sizing ํ”„๋กœํผํ‹ฐ๋Š” width, height ํ”„๋กœํผํ‹ฐ์˜ ๋Œ€์ƒ ์˜์—ญ์„ ๋ณ€๊ฒฝํ•œ๋‹ค.

ํ‚ค์›Œ๋“œ
์„ค๋ช…

content-box

width, height ํ”„๋กœํผํ‹ฐ ๊ฐ’์€ content ์˜์—ญ์„ ์˜๋ฏธ(๊ธฐ๋ณธ๊ฐ’)

border-box

width, height ํ”„๋กœํผํ‹ฐ ๊ฐ’์€ content ์˜์—ญ, padding, border๊ฐ€ ํฌํ•จ๋œ ๊ฐ’์„ ์˜๋ฏธ, CSS Layout์„ ์ง๊ด€์ ์œผ๋กœ ์‚ฌ์šฉ

box-sizing
box-sizing2

box-sizing ํ”„๋กœํผํ‹ฐ๋Š” ์ƒ์†๋˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ box-sizing ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ดˆ๊ธฐํ™”ํ•˜๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜ํ•œ๋‹ค.


6. Conclusion

margin, padding, border๋Š” ์ •๋ง ์›น๋””์ž์ธ์„ ํ•  ๋•Œ flex, grid๋ณด๋‹ค ๋” ๋งŽ์ด ์‚ฌ์šฉ์„ ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ ๋งŒํผ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ์œผ๋‹ˆ ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ต์ˆ™ํ•ด์กŒ์ง€๋งŒ ์ด๋ฒˆ ์ฑ•ํ„ฐ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋ชฐ๋ž๋˜ ๋ถ€๋ถ„๋„ ๋งŽ์ด ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ border-radius: top-left top-right bottom-right bottom-left๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ผ์ผํžˆ ํ•˜๋‚˜ํ•˜๋‚˜ ๊ฐ’๋“ค์„ ์ง€์ •ํ–ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” ํ•œ ์ค„๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ์„ ํ•ด์•ผ๊ฒ ๋‹ค. ๋˜ํ•œ ํƒ€์›ํ˜•์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ ์ด๋ฒˆ์— ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. x์ขŒํ‘œ, y์ขŒํ‘œ์— ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฐ˜์ง€๋ฆ„์„ ์ฃผ์–ด ํƒ€์›ํ˜•์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋” ๋ฉ‹์ง„ ์›น๋””์ž์ธ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž. box-sizing๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋ญ”๊ฐ€ ๋ฐ•์Šค๊ฐ€ ์ด์ƒํ•œ๋ฐ? ํ•˜๋ฉด์„œ ์•„๋ฌด๋Ÿฐ ์ƒ๊ฐ์—†์ด box-sizing: border-box์‚ฌ์šฉํ•ด์™”๋‹ค. ํ•˜์ง€๋งŒ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์ •ํ™•ํžˆ ํŒŒ์•…์„ ํ•˜๋‹ˆ ์†์ด ์‹œ์›ํ•œ ๊ธฐ๋ถ„์ด ๋“ค๊ณ  ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋ฐ•์Šค ๋ชจ๋ธ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•  ๋•Œ ํ•œ์ธต ๋” ์ž์‹ ๊ฐ์žˆ๊ฒŒ ๋Œ€๋‹ตํ•  ์ˆ˜ ์žˆ์„๊ฑฐ ๊ฐ™๋‹ค.๐Ÿ˜Š ์‚ฌ์šฉํ•˜๋Š” css๋งŒ ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋งŽ์€ ๊ฒƒ๋“ค์„ ๋ฐฐ์šฐ๊ณ  ํ•˜๋‚˜์”ฉ ์ ์šฉํ•ด๋ณด๋ฉด์„œ ๊ณต๋ถ€ํ•˜์ž


์ฐธ๊ณ 

poiemaweb 2-4 ๋ฐ•์Šค ๋ชจ๋ธarrow-up-right ๋„์„œ - HTML + CSS + ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์›น ํ‘œ์ค€์˜ ์ •์„


๐Ÿ‘†

๐Ÿ“… 2022-07-12

Last updated