topic난이도 · 약 15

box-sizing과 단위의 세계

border-box로 크기 계산 단순화. px, rem, %, vh/vw 단위를 상황에 맞게 사용한다.

#box-sizing#border-box#rem#px#단위
왜 배우는가

width: 300px + padding: 20px + border: 1px이면 실제 너비는 342px이다. box-sizing: border-box 한 줄이 이 함정을 해결한다.

같은 width: 300px인데 실제 크기가 다르다?

구분content-box (기본값)border-box (권장)
width 의미content만 포함content + padding + border 포함
width: 300px 실제300 + 20x2 + 1x2 = 342px딱 300px!

border-box: width에 padding + border가 포함됨 거의 모든 프로젝트에서 전역 설정으로 사용: `*, *::before, *::after { box-sizing: border-box; }`

px만 쓰면 안 되나요? 상황에 맞는 단위가 있습니다

단위설명
px고정 크기 (1px = 화면 1점)
rem루트(html) font-size 기준 배수 (반응형 권장)
%부모 요소 기준 비율
vh / vw뷰포트 높이/너비의 1% (전체 화면 기준)

실무 팁: 글꼴 크기 -> rem, 간격 -> rem 또는 px, 레이아웃 너비 -> %, 전체 화면 -> vh/vw

홈페이지 콘텐츠를 가운데 정렬해봅시다

css
*, *::before, *::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: sans-serif;
  background: #FFF8F0;
}

.container {
  max-width: 700px;
  margin: 0 auto;
  padding: 20px;
}

box-sizing: border-box 전역 설정 + margin: 0 auto로 수평 가운데 정렬.

속성설명
content-box기본값 — width가 content만 포함 (padding/border 별도)
border-box권장 — width에 padding과 border 포함 계산
단위설명
px고정 단위 — 화면 크기와 무관하게 일정
rem루트 글꼴 기준 — 반응형에 적합 (1rem = 16px 기본)
%부모 요소 기준 비율로 크기 지정
vw/vh뷰포트 기준 — 화면 전체 너비/높이의 비율

* { box-sizing: border-box; }를 CSS 첫 줄에 넣으면 레이아웃이 훨씬 편합니다.

실기 드릴 3문항
edit실기 드릴 · 단답형

box-sizing: border-box를 적용하면 width에 무엇이 포함되는가?

space_bar실기 드릴 · 빈칸 채우기

블록 요소를 수평 가운데 정렬하려면 margin: 0 ___ 를 사용한다.

edit실기 드릴 · 단답형

display: none과 visibility: hidden의 차이는?