Notice
Recent Posts
Recent Comments
Link
ยซ   2026/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

็„ก์ œ

CSS์˜ Box Model ๋ณธ๋ฌธ

<style>

CSS์˜ Box Model

yo-u-loo 2026. 3. 18. 14:39

 

๐Ÿ”ถโ€Šโ€Š Box Model ๐Ÿ”ถ

์›น ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ์š”์†Œ๋Š” ์‚ฌ๊ฐํ˜• ๋ฐ•์Šค ๋ชจ์–‘์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ, ์ด๋ฅผ CSS ๋ฐ•์Šค ๋ชจ๋ธ(Box Model) ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

์ด ๋ฐ•์Šค๋Š” ๋‚ด์šฉ(content), ํŒจ๋”ฉ(padding), ํ…Œ๋‘๋ฆฌ(border), ์—ฌ๋ฐฑ(margin) 4๊ฐ€์ง€ ์˜์—ญ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

 

https://www.w3schools.com/css/css_boxmodel.asp

 

๐Ÿ”นโ€Š Box Model ๊ตฌ์„ฑ ์š”์†Œ

๋ฐ•์Šค ๋ชจ๋ธ์€ ์•ˆ์ชฝ์—์„œ ๋ฐ”๊นฅ์ชฝ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

  • content (๋‚ด์šฉ): ์‹ค์ œ ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ์š”์†Œ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์˜์—ญ.
    • ์†์„ฑ: width, height.
  • padding (์•ˆ์ชฝ ์—ฌ๋ฐฑ): ๋‚ด์šฉ(content)๊ณผ ํ…Œ๋‘๋ฆฌ(border) ์‚ฌ์ด์˜ ๊ณต๊ฐ„.
    • ์†์„ฑ: padding, padding-top, padding-right, padding-bottom, padding-left
  • border (ํ…Œ๋‘๋ฆฌ): ๋ฐ•์Šค๋ฅผ ๊ฐ์‹ธ๋Š” ์„ .
    • ์†์„ฑ: border-width, border-style, border-color, border(์ถ•์•ฝ).
  • margin (๋ฐ”๊นฅ ์—ฌ๋ฐฑ): ๋ฐ•์Šค์™€ ๋‹ค๋ฅธ ์š”์†Œ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ.
    • ์†์„ฑ: margin, margin-top, margin-right, margin-bottom, margin-left.

 

๐Ÿ”นโ€Š width (๋„“์ด)์™€ height (๋†’์ด)

์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ๋ณธ ์†์„ฑ.

div {
  width: 200px;   /* ์ฝ˜ํ…์ธ  ์˜์—ญ ๋„ˆ๋น„ */
  height: 100px;  /* ์ฝ˜ํ…์ธ  ์˜์—ญ ๋†’์ด */
}
  • ๊ธฐ๋ณธ์ ์œผ๋กœ Content ์˜์—ญ์˜ ํฌ๊ธฐ๋งŒ ์ง€์ •.

 

div {
  width: 200px;
  padding: 10px;
  border: 5px solid black;
  margin: 20px;
  box-sizing: content-box;
}
  • Content ์˜์—ญ: 200px
    Padding: 10px × 2 = 20px
    Border: 5px × 2 = 10px
    Margin: 20px × 2 = 40px
    • ์ด ๋„ˆ๋น„ = 200 + 20 + 10 + 40 = 270px
      ์ด ๋†’์ด = height + padding + border + margin

๐Ÿ‘‰๐Ÿปโ€Š ๋”ฐ๋ผ์„œ, ํŒจ๋”ฉ ๋ณด๋” ๋งˆ์ง„์ด ์ถ”๊ฐ€๋˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ณ„์‚ฐํ•˜๋Š” ์‹ค์ œ ์š”์†Œ์˜ ์ „์ฒด ํฌ๊ธฐ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ง€์ •ํ•œ ๋„ˆ๋น„๋ณด๋‹ค ์ปค์ง€๊ฒŒ ๋œ๋‹ค.

 

๐Ÿ”น box-sizing ์†์„ฑ

Box Model์˜ ๊ณ„์‚ฐ ๋ฐฉ์‹์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ์†์„ฑ.

/* ์ด ๋„ˆ๋น„ = 230px (padding๊ณผ border ํฌํ•จ) */
div {
  width: 200px;
  padding: 10px;
  border: 5px solid black;
  box-sizing: content-box;
}
  • content-box: width, height๋Š” content๋งŒ ํฌํ•จ. (๊ธฐ๋ณธ๊ฐ’)

 

/* ์ด ๋„ˆ๋น„ = 200px (padding๊ณผ border ํฌํ•จ) */
div {
  width: 200px;
  padding: 10px;
  border: 5px solid black;
  box-sizing: border-box;
}
  • border-box: width, height์— padding + border๊นŒ์ง€ ํฌํ•จ.

 

๐Ÿ”น box-shadow ์†์„ฑ

๋ฐ•์Šค์— ๊ทธ๋ฆผ์ž ํšจ๊ณผ๋ฅผ ์ฃผ์–ด ์ž…์ฒด์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ์†์„ฑ.

selector { box-shadow: offset-x offset-y blur-radius spread-radius color inset; }
  • ๋ฌธ๋ฒ•: box-shadow: ๊ฐ€๋กœ์œ„์น˜ ์„ธ๋กœ์œ„์น˜ ํ๋ฆผ์ •๋„ ๋ฒˆ์ง์ •๋„ ์ƒ‰์ƒ ์™ธ.๋‚ด๋ถ€์ ์šฉ;
    • offset-x: ๊ทธ๋ฆผ์ž ์ขŒ์šฐ ์ด๋™. (์–‘์ˆ˜ → ์˜ค๋ฅธ์ชฝ, ์Œ์ˆ˜ → ์™ผ์ชฝ) (ํ•„์ˆ˜)
    • offset-y: ๊ทธ๋ฆผ์ž ์œ„์•„๋ž˜ ์ด๋™. (์–‘์ˆ˜ → ์•„๋ž˜, ์Œ์ˆ˜ → ์œ„) (ํ•„์ˆ˜)
    • blur-radius: ํ๋ฆผ ์ •๋„. (๊ฐ’ ํด์ˆ˜๋ก ํผ์ง€๊ณ , 0์ด๋ฉด ์„ ๋ช…ํ•œ ๊ทธ๋ฆผ์ž)
    • spread-radius: ๊ทธ๋ฆผ์ž ํฌ๊ธฐ ํ™•์žฅ/์ถ•์†Œ. (์–‘์ˆ˜ → ์ปค์ง, ์Œ์ˆ˜ → ์ž‘์•„์ง)
    • color: ๊ทธ๋ฆผ์ž ์ƒ‰.
    • inset: ์•ˆ์ชฝ ๊ทธ๋ฆผ์ž. (๊ธฐ๋ณธ: ์™ธ๋ถ€ ๊ทธ๋ฆผ์ž, inset: ๋‚ด๋ถ€ ๊ทธ๋ฆผ์ž)

 

 

๐Ÿ“‹ ๋ฐ•์Šค ๋ชจ๋ธ ํ•ต์‹ฌ ์š”์•ฝ ๐Ÿ“‹

ํ‚ค์›Œ๋“œ ์—ญํ•  ๋น„๊ณ 
width/height ์š”์†Œ์˜ ๊ฐ€๋กœ/์„ธ๋กœ ํฌ๊ธฐ ๊ฒฐ์ • box-sizing ์„ค์ •์— ๋”ฐ๋ผ ๊ธฐ์ค€์ด ๋ณ€ํ•จ
box-sizing ๋ฐ•์Šค ํฌ๊ธฐ ์‚ฐ์ • ๊ธฐ์ค€ ์„ค์ • border-box๋ฅผ ์“ฐ๋ฉด ๋ ˆ์ด์•„์›ƒ ์„ค๊ณ„๊ฐ€ ํŽธํ•จ
box-shadow ์š”์†Œ์— ์ž…์ฒด์ ์ธ ๊ทธ๋ฆผ์ž ์ถ”๊ฐ€ ๋ ˆ์ด์•„์›ƒ ํฌ๊ธฐ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ

 

 

โš™๏ธ ์‹คโ€Š์ „ ์˜ˆ์ œ ์ฝ”๋“œ โš™๏ธ

<style>
  .box {
    /* 1. ํฌ๊ธฐ ์„ค์ • */
    width: 200px;
    height: 100px;
    
    /* 2. ํฌ๊ธฐ ๊ณ„์‚ฐ ๋ฐฉ์‹ ๋ณ€๊ฒฝ (๊ฐ•๋ ฅ ์ถ”์ฒœ) */
    box-sizing: border-box; 
    
    padding: 20px;
    border: 5px solid #34495e;
    background-color: #3498db;
    color: white;
    
    /* 3. ๊ทธ๋ฆผ์ž ํšจ๊ณผ (๊ฐ€๋กœ 10, ์„ธ๋กœ 10, ํ๋ฆผ 15, ์ƒ‰์ƒ ๋ฐ˜ํˆฌ๋ช… ๊ฒ€์ •) */
    box-shadow: 10px 10px 15px rgba(0, 0, 0, 0.3);
  }
</style>
 
<div class="box">Box Model</div>

 

'<style>' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Box Model์˜ margins ์†์„ฑ  (0) 2026.03.18
Box Model์˜ border ์†์„ฑ  (0) 2026.03.18
display: inline-block ์†์„ฑ  (0) 2026.03.18
table ์†์„ฑ  (0) 2026.03.18
list-style ์†์„ฑ  (0) 2026.03.17