CSS

CSS Box Model

lshjju 2026. 2. 16. 13:58

 

이미지 출처

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


웹 페이지의 모든 요소는 사각형의 상자 모양으로 구성되어 있는데, 이를 **CSS 박스 모델(Box Model)**이라고 부릅니다.

이 모델은 요소를 구성하는 네 가지 영역(Content, Padding, Border, Margin)이 어떻게 겹쳐지고 상호작용하는지를 정의하는 표준 규약입니다.


1. 박스 모델의 구성 요소

박스 모델은 안쪽에서 바깥쪽으로 다음과 같은 순서로 이루어져 있습니다.

  • Content (내용): 텍스트나 이미지가 들어있는 실제 영역입니다.
  • Padding (안쪽 여백): 테두리와 내용 사이의 공간입니다.
  • Border (테두리): 패딩과 마진 사이의 경계선입니다.
  • Margin (바깥 여백): 테두리 바깥의 공간으로, 다른 요소와의 거리를 조절합니다.

2. width와 height (너비와 높이)

요소의 크기를 결정하는 기본 속성입니다.

  • 기본적으로 width와 height는 Content 영역의 크기만을 의미합니다.
  • 따라서 패딩이나 보더가 추가되면 브라우저가 계산하는 실제 요소의 전체 크기는 우리가 지정한 width보다 더 커지게 됩니다.

3. box-sizing (크기 계산 방식)

패딩과 테두리가 추가될 때 요소의 전체 너비가 변하는 것을 제어하는 매우 중요한 속성입니다.

  • content-box (기본값): width를 100px로 설정하고 패딩을 20px 주면, 전체 너비는 140px(100 + 20 + 20)이 됩니다.
  • border-box (권장): 패딩과 테두리 두께를 width 안에 포함시킵니다. width를 100px로 설정하면 패딩을 아무리 늘려도 전체 너비는 100px로 고정되어 레이아웃 계산이 훨씬 쉬워집니다.

4. box-shadow (박스 그림자)

박스 모델의 테두리 바깥이나 안쪽에 그림자 효과를 주어 입체감을 더하는 속성입니다.

  • 구문: box-shadow: [가로위치] [세로위치] [흐림정도] [번짐정도] [색상];
  • 이 속성은 박스 모델의 물리적인 크기(너비, 높이)에는 영향을 주지 않으므로 레이아웃을 망가뜨리지 않고 시각적인 깊이감만 부여합니다.

🖥️ 실전 예제 코드

HTML
 
<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>

📋 박스 모델 핵심 요약

키워드 역할 비고
width/height 요소의 가로/세로 크기 결정 box-sizing 설정에 따라 기준이 변함
box-sizing 박스 크기 산정 기준 설정 border-box를 쓰면 레이아웃 설계가 편함
box-shadow 요소에 입체적인 그림자 추가 레이아웃 크기에는 영향을 주지 않음

웹 레이아웃의 가장 밑바닥 논리인 박스 모델을 정복하셨습니다!


 

 

'CSS' 카테고리의 다른 글

CSS Margins property  (0) 2026.02.16
CSS Borders property  (0) 2026.02.16
CSS gradient generator  (0) 2026.02.16
CSS Animation and @keyframes  (0) 2026.02.15
transition  (0) 2026.02.15