choco's story
CSS 06. 박스 모델 (Box-Model) - 2 본문
padding 과 margin
padding과 margin이 정확히 어떤 영역의 공백을 뜻하는지는 아래 이미지를 보면 쉽게 이해할 수 있습니다.
테두리 선인 border를 기준으로 안쪽에 있는 여백을 padding, 바깥쪽에 있는 여백을 margin이라고 합니다.
이러한 여백은 둘 padding과 margin 둘 다 상하좌우 네 개의 면에 전부 존재하는 영역입니다.
그런데 이 여백을 어느 부분에는 적용하고, 어디는 아예 없애고 싶은데 어떻게 할 수 있을까요?
아래 두 개의 방법을 사용하면 각각 여백을 주는 것이 가능합니다.
- 하위 속성 정의
- 여러 값을 한 번에 정의
하위 속성 정의
padding과 margin 모두 상하좌우 여백을 정의할 수 있는 개별 속성이 있습니다.
각 속성 옆에 top, bottom, left, right를 붙이면 해당하는 방향에만 여백을 주는 것이 가능합니다.
아래 예시를 통해 직접 보도록 하겠습니다.
상하좌우 여백값 예시
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>box model</title>
<style>
div {
width: 100px;
height: 100px;
border: 5px solid darkmagenta;
/* 상하좌우 padding 값 각각 설정 가능 */
padding-top: 10px;
padding-right: 40px;
padding-bottom: 10px;
padding-left: 20px;
/* 상하좌우 margin 값 각각 설정 가능 */
margin-top: 20px;
margin-right: 10px;
margin-bottom: 30px;
margin-left: 40px;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
안쪽 초록 부분이 padding 값이고, border의 바깥 주황 부분이 margin 값 입니다.
상하좌우 각 부분마다 padding과 margin 값이 각각 지정된 것을 확인할 수 있습니다.
여러 값을 한 번에 정의
padding과 margin은 위처럼 각각 접미사를 붙여 여백을 부여할 수도 있지만, 더 간편하게 하는 방법이 있습니다.
네 면의 여백에 대한 단축 속성으로 작성하면 매우 짧은 코드로 여백을 부여할 수 있습니다.
ex)
span{
margin: 10px 20px 30px 40px;
}이 예시 코드에서 왼쪽부터 순서대로 top, right, bottom, left 입니다.
아래 예시를 통해 직접 보도록 하겠습니다.
상하좌우 여백값 예시2
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>box model</title>
<style>
div {
width: 100px;
height: 100px;
border: 5px solid darkmagenta;
/* 한 번에 상하좌우 padding 값 설정 가능 */
padding: 10px 10px 20px 30px;
/* 한 번에 상하좌우 margin 값 설정 가능 */
margin: 50px 30px 10px 40px;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
padding과 margin 둘 다 한 번에 값을 설정했습니다.
둘 다 순서대로 top, right, bottom, left 입니다.
그런데 한 번에 값을 줄 때, 저것보다 더 축약할 수도 있습니다.
상하좌우 여백값 예시3
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>box model</title>
<style>
div {
width: 100px;
height: 100px;
border: 5px solid darkmagenta;
/* 아래와 같은 경우는 상 좌우 하 */
padding: 10px 60px 40px;
margin: 20px 40px 20px;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
위처럼 딱 세 개의 값만 적용한 경우엔 순서대로 top, left & right, bottom 순서로 여백이 적용됩니다.
더 줄일 수도 있습니다. 아래 예시처럼 입력하면 top & bottom, left & right 순서로 여백이 적용됩니다.
ex)
/* 아래와 같은 경우는 상하 좌우 */
margin: 60px 20px;이렇게 개발자 마음대로 편리하게 단축하여 값을 넣을 수 있습니다!
'HTML & CSS > CSS' 카테고리의 다른 글
| CSS 08. 박스 모델 (Box-Model) - 4 (0) | 2026.05.18 |
|---|---|
| CSS 07. 박스 모델 (Box-Model) - 3 (0) | 2026.05.18 |
| CSS 05. 박스 모델 (Box-Model) - 1 (0) | 2026.05.09 |
| CSS 04. display, border (0) | 2026.05.09 |
| CSS 03. 텍스트(폰트) 꾸미기 (0) | 2026.05.03 |
