--- title: box-sizing slug: Web/CSS/box-sizing tags: - CSS - CSS Property - Reference translation_of: Web/CSS/box-sizing ---
box-sizing
CSS 속성은 요소의 너비와 높이를 계산하는 방법을 지정합니다.
CSS 박스 모델의 기본값에서, 지정한 너비와 높이는 요소의 콘텐츠 박스 크기에만 적용됩니다. 요소에 테두리나 안쪽 여백이 있으면 너비와 높이에 더해서 화면에 그립니다. 따라서 크기를 설정할 때, 원하는 크기를 얻으려면 테두리나 안쪽 여백을 고려해야 합니다.
box-sizing
속성을 사용해 이 방식을 바꿀 수 있습니다.
content-box
는 기본 CSS 박스 크기 결정법을 사용합니다. 요소의 너비를 100 픽셀로 설정하면 콘텐츠 영역이 100 픽셀 너비를 가지고, 테두리와 안쪽 여백은 이에 더해집니다.border-box
는 테두리와 안쪽 여백의 크기도 요소의 크기로 고려합니다. 너비를 100 픽셀로 설정하고 테두리와 안쪽 여백을 추가하면, 콘텐츠 영역이 줄어들어 총 너비 100 픽셀을 유지합니다. 대부분의 경우 이 편이 크기를 조절할 때 쉽습니다.box-sizing
속성은 다음 키워드 중 하나로 지정할 수 있습니다.
content-box
.box {width: 350px; border: 10px solid black;}
을 적용한 요소의 너비는 370px
입니다.border-box
.box {width: 350px; border: 10px solid black;}
을 적용한 요소의 너비는 350px
입니다. 콘텐츠 영역의 크기는 음수일 수 없으므로 border-box
를 사용해 요소를 사라지게 할 수는 없습니다.다음 예제는 두 개의 동일한 요소의 크기가 서로 다른 box-sizing
값으로 어떻게 달라지는지 보입니다.
<div class="content-box">Content box</div> <br> <div class="border-box">Border box</div>
div { width: 160px; height: 80px; padding: 20px; border: 8px solid red; background: yellow; } .content-box { box-sizing: content-box; /* Total width: 160px + (2 * 20px) + (2 * 8px) = 216px Total height: 80px + (2 * 20px) + (2 * 8px) = 136px Content box width: 160px Content box height: 80px */ } .border-box { box-sizing: border-box; /* Total width: 160px Total height: 80px Content box width: 160px - (2 * 20px) - (2 * 8px) = 104px Content box height: 80px - (2 * 20px) - (2 * 8px) = 24px */ }
{{EmbedLiveSample('예제', 'auto', 300)}}
Specification | Status | Comment |
---|---|---|
{{SpecName('CSS3 Basic UI', '#box-sizing', 'box-sizing')}} | {{Spec2('CSS3 Basic UI')}} |
{{cssinfo}}
{{Compat("css.properties.box-sizing")}}