티스토리 뷰

웹 페이지의 모든 요소는 사각형의 '박스' 형태를 띠고 있습니다. 이 박스를 어떻게 제어하느냐에 따라 레이아웃의 완성도가 결정됩니다. CSS 박스 모델의 핵심 구성 요소인 **Margin(마진)**과 **Padding(패딩)**을 완벽히 파헤쳐 보겠습니다.
1. 박스 모델의 4가지 구성 요소
CSS 박스 모델은 안쪽에서부터 바깥쪽으로 다음과 같은 계층 구조를 가집니다.
- 콘텐츠(Content): 텍스트나 이미지가 표시되는 실제 영역.
- 패딩(Padding): 콘텐츠와 테두리(Border) 사이의 내부 여백.
- 테두리(Border): 패딩과 마진 사이의 경계선.
- 마진(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) 안에 패딩과 테두리가 포함되어 계산되므로 레이아웃을 잡기가 훨씬 수월해집니다.
마진과 패딩의 차이를 명확히 구분하는 것만으로도 웹 페이지의 레이아웃을 훨씬 정교하고 깔끔하게 설계할 수 있습니다. 각 속성의 특성을 고려하여 상황에 맞는 적절한 여백을 활용해 보시기 바랍니다.
반응형
'Frontend > CSS' 카테고리의 다른 글
| 상속(Inheritance)과 우선순위: 내 CSS가 적용되지 않는 이유 (0) | 2026.02.28 |
|---|---|
| CSS 색상 표현법: RGB, HEX, HSL 중 무엇을 써야 할까? (0) | 2026.02.10 |
| 웹 폰트 적용법: 구글 폰트와 눈누로 블로그 가독성 높이기 (0) | 2026.02.10 |
| CSS 선택자(Selector) 완벽 가이드: 원하는 요소만 콕 집어 꾸미기 (0) | 2026.02.10 |
| CSS 시작하기: HTML에 스타일을 입히는 3가지 방법 (0) | 2026.02.10 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- CSR
- 스마트안경
- HTML
- LLM
- 구글
- Rag
- Nextjs
- TypeScript
- HBM
- SSR
- java
- 카카오
- prompt engineering
- AI
- 웹기초
- on-device ai
- react
- Javascript
- CSS
- sLLM
- It용어
- 멀티모달
- 협력
- 엣지컴퓨팅
- MSA
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함