티스토리 뷰

 

웹 페이지의 모든 요소는 사각형의 '박스' 형태를 띠고 있습니다. 이 박스를 어떻게 제어하느냐에 따라 레이아웃의 완성도가 결정됩니다. CSS 박스 모델의 핵심 구성 요소인 **Margin(마진)**과 **Padding(패딩)**을 완벽히 파헤쳐 보겠습니다.

1. 박스 모델의 4가지 구성 요소

CSS 박스 모델은 안쪽에서부터 바깥쪽으로 다음과 같은 계층 구조를 가집니다.

  1. 콘텐츠(Content): 텍스트나 이미지가 표시되는 실제 영역.
  2. 패딩(Padding): 콘텐츠와 테두리(Border) 사이의 내부 여백.
  3. 테두리(Border): 패딩과 마진 사이의 경계선.
  4. 마진(Margin): 테두리 바깥의 외부 여백. 다른 요소와의 간격을 결정합니다.

2. Padding(내부 여백)의 특징과 예제

패딩은 요소의 '안쪽' 공간을 확보합니다.

특징

  • 요소 내부에 배경색이나 배경 이미지를 적용하면 패딩 영역까지 포함되어 나타납니다.
  • 클릭 가능한 영역(예: 버튼)을 넓히고 싶을 때 주로 사용합니다.
  • 패딩값이 커지면 요소의 전체 크기도 커집니다. (box-sizing 설정에 따라 다름)

[예제] 버튼의 가독성 높이기

패딩이 없는 버튼과 패딩이 적절히 들어간 버튼을 비교해 보세요.

/* 패딩이 없는 버튼: 답답해 보입니다 */
.button-no-padding {
  background-color: #3498db;
  color: white;
  border: none;
  padding: 0; 
}

/* 패딩이 있는 버튼: 시원하고 클릭하기 편합니다 */
.button-with-padding {
  background-color: #3498db;
  color: white;
  border: none;
  padding: 12px 24px; /* 위아래 12px, 좌우 24px */
}

3. Margin(외부 여백)의 특징과 예제

마진은 요소의 '바깥쪽' 공간을 확보하여 다른 요소와의 거리를 둡니다.

특징

  • 마진은 항상 투명하며, 배경색이 적용되지 않습니다.
  • 인접한 두 요소 사이의 간격을 조절할 때 사용합니다.
  • 마진 상쇄(Margin Collapsing) 현상이 발생할 수 있습니다 (위아래 마진이 겹칠 때 큰 값만 적용되는 현상).

[예제] 박스 사이의 간격 띄우기

여러 개의 카드 뉴스를 배치할 때 마진은 필수입니다.

/* 마진이 없는 카드: 서로 달라붙어 구분이 안 됩니다 */
.card-no-margin {
  border: 1px solid #ddd;
  margin: 0;
}

/* 마진이 있는 카드: 각 요소가 독립적으로 보입니다 */
.card-with-margin {
  border: 1px solid #ddd;
  margin-bottom: 20px; /* 아래쪽 카드와의 간격 20px */
}

4. Margin vs Padding: 한눈에 비교하기

구분Margin (마진)Padding (패딩)

위치 테두리(Border)의 바깥쪽 테두리(Border)의 안쪽
용도 다른 요소와의 거리 조절 콘텐츠와 테두리 사이의 여백 조절
배경색 적용되지 않음 (투명) 적용됨 (콘텐츠의 배경이 확장됨)
클릭 유무 해당 영역 클릭 시 반응 없음 해당 영역 클릭 시 요소가 반응함

5. 실전 활용 팁: '액자'로 이해하기

박스 모델을 더 쉽게 이해하려면 **'액자에 걸린 그림'**을 상상해 보세요.

  • 그림: 콘텐츠 (Content)
  • 그림과 액자 틀 사이의 흰 종이: 패딩 (Padding)
  • 액자 틀: 테두리 (Border)
  • 액자와 옆에 걸린 다른 액자 사이의 벽 공간: 마진 (Margin)

실무에서 자주 쓰는 단축 속성

상하좌우 값을 한 번에 지정하는 법을 익혀두면 코드가 깔끔해집니다.

/* 상 하 좌 우 모두 20px */
margin: 20px;

/* 상하 10px, 좌우 20px */
padding: 10px 20px;

/* 상 10px, 좌우 20px, 하 30px */
margin: 10px 20px 30px;

/* 상 10px, 우 20px, 하 30px, 좌 40px (시계 방향) */
padding: 10px 20px 30px 40px;

6. 주의사항: Box-sizing 속성

패딩을 주면 박스의 전체 너비가 의도보다 커지는 경우가 있습니다. 이를 방지하기 위해 실무에서는 보통 모든 요소에 다음 설정을 추가합니다.

* {
  box-sizing: border-box;
}

이 설정을 사용하면 너비(width) 안에 패딩과 테두리가 포함되어 계산되므로 레이아웃을 잡기가 훨씬 수월해집니다.

마진과 패딩의 차이를 명확히 구분하는 것만으로도 웹 페이지의 레이아웃을 훨씬 정교하고 깔끔하게 설계할 수 있습니다. 각 속성의 특성을 고려하여 상황에 맞는 적절한 여백을 활용해 보시기 바랍니다.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
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
글 보관함