일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- aspect-ratio
- 중간저장
- stash
- eslint
- JavaScript
- aspect ratio
- git prune
- REACT
- content-box
- git remote -v
- 타입스크립트
- git remote
- eslint-disable
- 유틸리티 타입
- flex-box
- 프론트엔드
- typeScript
- 상태관리
- prettier
- git remote upstream
- git remote origin
- git stash
- developer
- FRONT-END
- 깃
- frontend
- 커밋
- border-box
- git
- CSS
- Today
- Total
dev_story
[CSS] box-sizing이란? 본문
box-sizing이란?
CSS의 box-sizing 속성은 요소의 너비와 높이가 어떻게 계산되어야 하는지를 결정합니다.
기본적으로, CSS는 content-box 값을 사용하는데,
이는 요소의 너비와 높이가 내용(content)의 크기만을 포함하고, padding, border, margin은 제외한다는 것을 의미합니다.
반면, box-sizing을 border-box로 설정하면, 요소의 너비와 높이가 padding과 border를 포함하여 계산됩니다.
이는 레이아웃을 더 예측 가능하게 만들고, CSS 코드를 더 간결하게 작성할 수 있게 합니다.
box-sizing 속성의 종류
- content-box: 기본 CSS 박스 모델을 따릅니다. 요소의 너비와 높이는 오직 내용의 크기만을 포함하며, padding과 border는 그 바깥에 추가됩니다.
- border-box: 요소의 너비와 높이가 내용, padding, 그리고 border의 총합을 포함합니다. margin은 포함되지 않습니다.
왜 border-box를 사용하는가?
border-box 사용의 주된 이유는 레이아웃을 더 쉽게 관리할 수 있게 해준다는 것입니다.
예를 들어, 100% 너비의 컨테이너 안에 요소를 배치할 때, content-box를 사용하면 요소에 추가된 패딩과 보더로 인해 요소가 실제로 컨테이너보다 크게 만들어질 수 있습니다. 이는 레이아웃이 깨지는 원인이 됩니다.
반면, border-box를 사용하면 요소의 너비는 패딩과 보더를 포함하여 100%로 유지됩니다.
예제 코드
전역 스타일로 box-sizing을 설정하여 모든 요소에 적용하는 것이 일반적입니다.
*,
*::before,
*::after {
box-sizing: border-box;
}
이 코드는 모든 요소와 그 요소의 모든 가상 요소에 대해 box-sizing을 border-box로 설정합니다.
box-sizing의 장단점
장점
- 레이아웃의 계산이 더 단순하고 예측 가능해집니다.
- 컨테이너의 크기를 초과하지 않는 요소의 크기를 보장합니다.
- 반응형 디자인에서 유용하게 사용됩니다.
단점
- 구식 브라우저에서는 border-box를 지원하지 않을 수도 있습니다(IE8 이하).
결론
box-sizing 속성은 CSS에서 레이아웃을 더 효과적으로 관리할 수 있게 해줍니다. 대부분의 웹 개발 프로젝트에서 border-box 값이 널리 사용되는 이유는 그만큼 레이아웃 작업을 간단하고 예측 가능하게 만들어주기 때문입니다. 개발자로서 다양한 상황에서 적절한 box-sizing 값을 선택하는 것이 중요합니다.
'CSS' 카테고리의 다른 글
[CSS] 이미지/동영상 비율을 임의로 설정하려면? - Aspect Ratio (2) | 2024.02.05 |
---|---|
[CSS] 유튜브 전체화면을 웹에서 구현하려면? (0) | 2024.02.01 |
[CSS] width 100vw일 때 가로(좌우) 스크롤이 생긴다면? (2) | 2024.01.24 |