학습
CSS 박스 모델 이해
CSS 박스 모델 이해 — 초급
박스 모델 이해
1. 도입 (왜 배워야 하는가)
CSS의 박스 모델은 웹 페이지의 요소들이 어떻게 배치되고 크기가 조절되는지를 이해하는 데 필수적인 개념입니다. 웹 디자인에서 모든 HTML 요소는 박스 형태로 간주되며, 이 박스의 크기와 여백, 경계, 패딩은 요소의 시각적 배치에 큰 영향을 미칩니다. 따라서 박스 모델을 이해하지 못하면 웹 요소가 의도한 대로 보이지 않거나 레이아웃이 엉망이 될 수 있습니다. 예를 들어, 쇼핑몰 웹사이트에서 상품 이미지 주변의 여백을 조절하지 않으면 이미지가 서로 겹치거나, 페이지가 비대칭적으로 보일 수 있습니다.
2. 핵심 개념 설명
박스 모델은 각 HTML 요소가 차지하는 공간을 정의하는 네 가지 주요 구성 요소로 이루어져 있습니다. 이 구성 요소들은 다음과 같습니다:
| 속성 | 설명 |
|---|---|
| 콘텐츠 (Content) | 실제 내용이 들어가는 부분 |
| 패딩 (Padding) | 콘텐츠와 경계 사이의 여백 |
| 경계 (Border) | 패딩과 외부 여백 사이의 경계선 |
| 마진 (Margin) | 요소와 다른 요소 사이의 여백 |
이것을 실생활에 비유하자면, 박스는 선물 상자와 같습니다. 상자 안에는 선물이 들어 있고, 상자 주위에는 포장지(패딩), 상자를 보호하는 테이프(경계), 그리고 다른 상자들과의 간격(마진)이 있습니다.
3. 기본 코드 예제
기본적인 박스 모델을 이해하기 위해 아래와 같은 코드를 살펴보겠습니다.
.box {
width: 200px; / 박스의 너비 설정 /
height: 100px; / 박스의 높이 설정 /
padding: 20px; / 내부 여백 설정 /
border: 5px solid black; / 경계선 설정 /
margin: 30px; / 외부 여백 설정 /
background-color: lightblue; / 배경색 설정 /
}
- 위 코드는
.box클래스를 가진 요소의 스타일을 설정합니다. - 이 코드의 실행 결과는 파란색 배경의 사각형 박스가 생성됩니다. 그리고 이 박스는 패딩, 경계, 마진을 포함합니다.
width: 200px;: 박스의 너비를 200픽셀로 설정합니다.height: 100px;: 박스의 높이를 100픽셀로 설정합니다.padding: 20px;: 내부 여백을 20픽셀로 설정하여 콘텐츠와 경계 사이의 공간을 만듭니다.border: 5px solid black;: 5픽셀 두께의 검은색 실선을 경계로 설정합니다.margin: 30px;: 박스 주변에 30픽셀의 여백을 설정하여 다른 요소와의 간격을 만듭니다.background-color: lightblue;: 박스의 배경색을 연한 파란색으로 설정합니다.
코드 한 줄씩 동작 설명:
4. 실전 활용 예제
예제 1: 쇼핑몰 장바구니 아이템
쇼핑몰에서 장바구니에 담긴 상품을 나열할 때 각 상품의 박스를 정의할 수 있습니다. 패딩을 사용하여 이미지와 텍스트 사이에 공간을 두고, 마진을 사용하여 상품 간의 간격을 조절합니다.
.cart-item {
width: 250px;
padding: 15px;
border: 2px solid #ccc;
margin: 10px;
background-color: white;
}
예제 2: 블로그 포스트 카드
블로그에서 각 포스트를 카드 형태로 보여줄 때 박스 모델을 활용할 수 있습니다. 각 카드에는 제목, 내용, 이미지가 포함되며, 패딩과 마진을 적절히 조절하여 사용자 경험을 향상시킵니다.
.post-card {
width: 300px;
padding: 20px;
border: 1px solid #000;
margin: 15px;
background-color: #f9f9f9;
}
5. 흔한 실수와 주의사항
실수 1: 마진과 패딩의 혼동
.box {
margin: 10px; / 외부 여백 /
padding: 10px; / 내부 여백 /
}
.box {
padding: 10px; / 내부 여백 /
margin: 10px; / 외부 여백 /
}
실수 2: 박스 크기 계산 오류
.box {
width: 100px; / 너비 /
padding: 10px; / 패딩 /
border: 5px solid black; / 경계 /
}
.box {
box-sizing: border-box; / 박스 크기 계산 /
width: 100px; / 너비 /
padding: 10px; / 패딩 /
border: 5px solid black; / 경계 /
}
box-sizing: border-box;를 사용하여 패딩과 경계가 포함된 총 너비를 유지해야 합니다.