็ก์
CSS์ Box Model ๋ณธ๋ฌธ
๐ถโโ Box Model ๐ถ
์น ํ์ด์ง์ ๋ชจ๋ ์์๋ ์ฌ๊ฐํ ๋ฐ์ค ๋ชจ์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ, ์ด๋ฅผ CSS ๋ฐ์ค ๋ชจ๋ธ(Box Model) ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ด ๋ฐ์ค๋ ๋ด์ฉ(content), ํจ๋ฉ(padding), ํ ๋๋ฆฌ(border), ์ฌ๋ฐฑ(margin) 4๊ฐ์ง ์์ญ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.

๐นโ 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
- ์ด ๋๋น = 200 + 20 + 10 + 40 = 270px
๐๐ปโ ๋ฐ๋ผ์, ํจ๋ฉ ๋ณด๋ ๋ง์ง์ด ์ถ๊ฐ๋๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ๊ณ์ฐํ๋ ์ค์ ์์์ ์ ์ฒด ํฌ๊ธฐ๋ ์ฐ๋ฆฌ๊ฐ ์ง์ ํ ๋๋น๋ณด๋ค ์ปค์ง๊ฒ ๋๋ค.
๐น 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 |