웹기초 CSS 박스모델

브라우저가 HTML 요소를 사각형 박스로 처리하는 원리인 박스 모델(Box Model)의 구조와 크기 계산 방식을 분석한다.

박스 모델의 4대 구성 요소

모든 HTML 요소는 내부에서 외부로 향하는 4개의 층으로 이루어져 있다.

  • Content: 텍스트나 이미지가 표시되는 실제 영역.
  • Padding: 콘텐츠와 테두리 사이의 안쪽 여백.
  • Border: 패딩을 감싸는 테두리 선.
  • Margin: 테두리 밖의 바깥쪽 여백으로, 타 요소와의 간격을 결정한다.

크기 계산의 함정: box-sizing

기본값인 content-box에서는 설정한 width에 패딩과 테두리가 더해져 전체 크기가 커지는 문제가 발생한다.

이를 해결하기 위해 border-box를 주로 사용한다.

/* 1. 기본 방식: 전체 너비 = 200 + (20*2) + (5*2) = 250px */
.box-standard {
    width: 200px;
    padding: 20px;
    border: 5px solid black;
    box-sizing: content-box;
}

/* 2. 현대적 방식: 전체 너비를 200px로 고정 (패딩/테두리 포함) */
.box-modern {
    width: 200px;
    padding: 20px;
    border: 5px solid black;
    box-sizing: border-box;
}

마진 상쇄 (Margin Collapsing) 현상

인접한 두 블록 요소의 상하 마진이 만날 때, 더 큰 마진 값으로 합쳐지는 현상이다.

레이아웃 설계 시 의도치 않은 간격 오류를 방지하기 위해 반드시 이해해야 한다.

P.S

박스 모델은 웹 레이아웃 설계의 가장 기초적인 물리 법칙이다.

box-sizing: border-box를 전역에 설정하는 습관은 레이아웃의 예측 가능성을 높이는 데 큰 도움이 되는 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts