CSS 박스 모델 구성 요소 및 box-sizing 속성

CSS 박스 모델 구성 요소 및 box-sizing 속성

CSS 박스 모델은 웹 문서를 구성하고 있는 요소들이 사각형 박스 형태로 구성되어 있습니다. 박스 형태로 구성된 요소들이 모여서 하나의 웹 문서가 완성이 되는 겁니다. 그래서 박스 모델에 대해서 잘 알고 있으면 티스토리 블로그를 운영하는데 정말 많은 도움이 됩니다. 그만큼 CSS 박스 모델에 대해서 잘 알아두면 좋을 것 같습니다.

그럼 CSS 박스 모델 구성 요소 및 box-sizing 속성에 대해서 알아보겠습니다.

박스 모델 구성 요소

1. 박스 모델의 구성 요소 (네 개의 영역으로 구성)

박스 모델의 구성 요소는 content, padding, border, margin 네 개의 영역으로 구성이 됩니다.
구성 요소설명
content(내용)요소의 내용 부분을 의미합니다.
padding내용과 테두리 사이의 간격을 의미합니다.
border요소의 테투리 부분을 의미합니다.
margin요소의 외부 여백을 의미합니다.


2. 크롬 브라우저 개발자 도구(F12)

▼ 크롬 브라우저 개발자 도구에서 요소의 박스 구조를 쉽게 확인할 수 있습니다.

크롬 브라우저 개발자 도구에서는 요소의 박스 구조를 쉽게 확인할 수 있습니다.


☞ 이번 포스트에는 content (내용) 영역에 해당되는 속성에 대해서 알아보고 이어서 padding, border, margin 속성에 대해서도 포스팅 예정입니다.

content (내용) 영역

1. width 속성과 height 속성

☞ width 속성과 height 속성은 content 영역의 크기를 지정합니다.


1. 사용 예제 (width 속성, height 속성)

<!DOCTYPE html>
<html>
<head>
<title>박스 모델</title>
<style>
div { 
    background-color: blue;
    border: 1px solid black;
    margin: 10px;
}   

.box1 {
    width: 200px;    /* 고정 너비 */
    height: 200px;   /* 고정 높이 */
}
.box2 {
    width: 50%;      /* 가변 너비 */
    height: 100px;   /* 고정 높이 */
}
</style>
</head>
<body>
    <div class="box1">box1</div>
    <div class="box2">box2</div>
</body>
</html>


2. 실행 결과 화면 (width 속성, height 속성)

width 속성, height 속성 지정한 예시 결과 화면입니다.

2. box-sizing 속성

☞ 내용(content)의 width 속성과 height 속성은 콘텐츠 여백(padding 영역)과 테투리(border 영역)를 제외한 크기를 가리킵니다. 웹 문서를 만들 때에는 콘텐츠 여백과 테두리까지 포함해서 크기를 지정하는 게 좀 더 편한 것 같습니다. 그럴 경우에 box-sizing 속성을 변경하면 됩니다.


1. box-sizing 속성의 값

속성 값설명
content-box콘텐츠 영역만 너비 값으로 지정합니다. 기본값입니다.
border-box테투리 영역까지 너비 값으로 지정합니다.


2. 사용 예제 (content-box 속성)

<!DOCTYPE html>
<html>
<head>
<title>박스 모델</title>
<style>
div {
    width: 200px;
    height: 100px;
    padding: 10px;
    border: 2px solid black;
    margin: 20px;
}
</style>
</head>
<body>
    <div>box</div>
    <p>박스너비 (224px) = 200px + (10px + 10px) + (2px + 2px)</p>
    <p>박스높이 (124px) = 100px + (10px + 10px) + (2px + 2px)</p>
</body>
</html>


3. 실행 결과 화면 (content-box 속성)

box-sizing 속성에 content-box로 지정한 예시 결과 화면입니다.


▼ width, height 크기를 지정했지만 의도치 않게 박스 크기가 다르게 표시됩니다.

박스 width 크기는 (224px) = 왼쪽 테두리(2px) + 왼쪽 여백(10px) + 내용(200px) + 오른쪽 여백(10px) + 오른쪽 테투리(2px)

박스 height 크기는 (124px) = 위쪽 테두리(2px) + 위쪽 여백(10px) + 내용(100px) + 아래쪽 여백(10px) + 아래쪽 테투리(2px)

content-box 속성인 경우는 width, height 크기를 지정했지만 의도치 않게 박스 크기가 다르게 표시됩니다.


4. 사용 예제 (border-box 속성)

<!DOCTYPE html>
<html>
<head>
<title>박스 모델</title>
<style>
div {
    width: 200px;
    height: 100px;
    padding: 10px;
    border: 2px solid black;
    margin: 20px;
    box-sizing: border-box;   /* 적용 기준 변경 */
}
</style>
</head>
<body>
    <div>box</div>
    <p>박스너비 (200px) = 자동계산 + (10px + 10px) + (2px + 2px)</p>
    <p>박스높이 (100px) = 자동계산 + (10px + 10px) + (2px + 2px)</p>
</body>
</html>


5. 실행 결과 화면 (border-box 속성)

box-sizing 속성에 border-box로 지정한 예시 결과 화면입니다.


▼ width, height 크기를 지정한 만큼 박스 크기로 설정이 됩니다. 내용 부분의 크기는 자동으로 계산이 됩니다.

박스 width 크기는 (200px) = 왼쪽 테두리(2px) + 왼쪽 여백(10px) + 내용(176px) + 오른쪽 여백(10px) + 오른쪽 테투리(2px)

박스 height 크기는 (100px) = 위쪽 테두리(2px) + 위쪽 여백(10px) + 내용(76px) + 아래쪽 여백(10px) + 아래쪽 테투리(2px)

border-box 속성인 경우 width, height 크기를 지정한 만큼 박스 크기로 설정이 됩니다. 내용 부분의 크기는 자동으로 계산이 됩니다.


이 글이 도움이 되셨다면 공유를 부탁 드립니다. 다음 글에서 뵙겠습니다!

CSS 관련 이전 게시글

CSS 글꼴(폰트) 관련 스타일, font-family 속성 등

CSS 텍스트 정렬(text-align), 줄 간격 조절(line-height)

CSS a태그 링크 밑줄 없애기, 밑줄 스타일, 색상 변경

CSS 배경색(background-color) 및 범위 지정 방법

CSS 배경 이미지 넣는 방법, background-image 속성 등

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤