box-sizing: border-box는 왜 자주 사용되나요?
답변 포인트
박스 모델 계산 방식를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.
정답 및 해설
빠른 요약
border-box는 width와 height에 padding과 border를 포함해 실제 박스 크기를 예측하기 쉽게 합니다. 반응형 레이아웃에서 계산 실수를 줄이는 데 도움이 됩니다.
border-box는 width와 height에 padding과 border를 포함해 실제 박스 크기를 예측하기 쉽게 합니다. 반응형 레이아웃에서 계산 실수를 줄이는 데 도움이 됩니다.
핵심 개념
핵심 기준은 박스 모델 계산 방식입니다. 이 개념은 단순한 용어가 아니라, 실제 코드나 시스템에서 반복적으로 생기는 문제를 다루기 위해 등장했습니다.
CSS는 cascade, layout, stacking context가 함께 동작합니다. 작은 속성 하나가 화면 전체의 배치나 접근성에 영향을 줄 수 있어 동작 원리를 알고 써야 합니다.
동작 흐름
- 먼저 어떤 문제가 있는지 확인합니다.
- 이 개념이 그 문제를 어떤 기준으로 나누거나 해결하는지 봅니다.
- 실제 코드에서는 입력, 상태, 실행 순서, 비용이 어떻게 바뀌는지 확인합니다.
- 마지막으로 한계와 부작용을 함께 점검합니다.
실제 예시
.card-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 16px;
}
.card {
box-sizing: border-box;
padding: 16px;
}레이아웃은 고정값보다 콘텐츠와 컨테이너의 크기에 반응하도록 만드는 것이 안전합니다.
실무에서 주의할 점
- 속성 하나가 새로운 formatting context나 stacking context를 만들 수 있습니다.
- 고정 크기만으로 반응형을 처리하면 작은 화면에서 쉽게 깨집니다.
- 포커스 스타일과 색 대비를 제거하면 접근성이 크게 나빠집니다.
함께 연결해서 보면 좋은 키워드
CSS, BoxModel, box-sizing, 레이아웃
정리
한 줄로 정리하면, border-box는 width와 height에 padding과 border를 포함해 실제 박스 크기를 예측하기 쉽게 합니다. 반응형 레이아웃에서 계산 실수를 줄이는 데 도움이 됩니다. 실무에서는 개념을 적용하는 조건과 적용하지 않았을 때 생기는 문제까지 함께 이해하는 것이 중요합니다.
border-box가 편한 이유
기본 content-box에서는 width가 콘텐츠 영역만 의미하고 padding/border가 바깥으로 더해집니다. border-box는 width 안에 content, padding, border를 모두 포함합니다.
.box {
width: 200px;
padding: 20px;
border: 1px solid #ccc;
}content-box라면 실제 너비는 200 + 40 + 2 = 242px입니다. border-box라면 실제 너비가 200px로 유지되어 레이아웃 계산이 쉬워집니다.
전역 설정
*,
*::before,
*::after {
box-sizing: border-box;
}실무 장점
- 카드/그리드에서 overflow가 줄어듭니다.
- 반응형 너비 계산이 단순해집니다.
- 디자인 툴에서 보는 박스 크기와 CSS width가 더 직관적으로 맞습니다.
단, 외부 위젯이나 오래된 CSS가 content-box를 전제로 작성된 경우 영향을 받을 수 있으므로 범위를 조정해야 할 때도 있습니다.