프론트엔드 개발 · 중급
CSS 박스 모델(Box Model)에서 `content-box`와 `border-box`의 차이점을 설명하고, 실제 웹 개발에서 `box-sizing` 속성을 어떻게 활용하여 레이아웃 문제를 해결할 수 있는지 구체적인 예를 들어 설명해주세요.
힌트 · 각 모델이 너비와 높이를 계산하는 방식을 비교하고, `box-sizing: border-box;`가 반응형 레이아웃이나 컴포넌트 개발 시 레이아웃 계산을 단순화하는 이점을 설명하세요.
content-boxborder-boxbox-sizingwidth/height 계산레이아웃 안정성
모범답안
CSS 박스 모델에서 content-box와 border-box는 요소의 너비와 높이를 계산하는 방식에 차이가 있습니다. content-box는 기본값으로, width와 height 속성이 콘텐츠 영역의 크기만을 지정합니다. padding, border는 이 값에 더해져 최종 크기를 결정합니다.
반면 border-box는 width와 height 속성이 콘텐츠 영역, padding, border를 모두 포함한 크기를 지정합니다. 따라서 box-sizing: border-box;를 사용하면 요소의 전체 크기를 기준으로 너비와 높이를 설정할 수 있어 레이아웃 계산이 훨씬 직관적입니다.
예를 들어, 반응형 웹 디자인에서 두 개의 div를 나란히 배치할 때, width: 50%;를 주고 padding을 추가하면 content-box에서는 화면을 벗어날 수 있습니다. 하지만 border-box를 사용하면 padding을 추가해도 전체 너비가 50%를 유지하므로 레이아웃이 깨지지 않습니다. 컴포넌트 개발 시에도 일관된 크기를 유지하는 데 유용합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 HTML / CSS 면접 질문
- CSS 선택자(Selector) 중 클래스(Class) 선택자와 ID 선택자의 차이점을 설명하고, 언제 어떤 선택자를 사용하는 것이 적절한지 예시를 들어주세요.
- CSS에서 'display' 속성의 주요 값들(block, inline, inline-block, none)에 대해 설명하고, 각각의 특징을 비교해주세요.
- CSS에서 선택자의 명시도(Specificity)는 어떻게 계산되며, 이를 효과적으로 관리하여 스타일 충돌을 피하고 원하는 스타일을 적용하는 방법은 무엇인가요? `!important`의 사용은 언제 권장되며, 어떤 부작용이 있을 수 있나요?
- Flexbox와 CSS Grid는 모두 레이아웃을 구성하는 강력한 도구입니다. 두 기술의 주요 차이점은 무엇이며, 각각 어떤 상황에서 더 적합하게 사용될 수 있는지 구체적인 사용 사례를 들어 설명해주세요.
- CSS `position` 속성 중 `static`이 아닌 다른 값을 가질 때 형성되는 포지셔닝 컨텍스트(Positioning Context)에 대해 설명하고, `z-index` 속성이 이 컨텍스트 내에서 어떻게 동작하는지 구체적인 예시와 함께 설명해주세요.
- CSS 가상 클래스(Pseudo-classes)와 가상 요소(Pseudo-elements)의 차이점을 설명하고, 각각을 실제 웹 개발에서 어떤 목적으로 활용할 수 있는지 2가지 이상의 구체적인 예시를 들어 설명해주세요.