웹 개발할 때 width와 padding을 설정하면 예상과 다르게 레이아웃이 깨지는 경우가 많다.
예를 들어, 다음과 같이 스타일을 지정했다고 가정해보자.
.box {
width: 200px;
padding: 50px;
border: 10px solid black;
}이 경우 .box의 실제 너비는 얼마일까?
보통 200px - 50px(좌) - 50px(우) = 100px이 될 거라고 생각할 수도 있지만,
실제로는 width가 컨텐츠 영역(content box)만을 의미하기 때문에 아래처럼 계산된다.
200px (content) + 50px (left padding) + 50px (right padding)
+ 10px (left border) + 10px (right border)
= 320px즉, padding과 border가 width에 포함되지 않기 때문에 원하는 크기보다 커지는 문제가 발생한다.
box-sizing: border-box;로 해결!이 문제를 해결하려면 box-sizing: border-box;를 적용하면 된다.
.box {
width: 200px;
padding: 50px;
border: 10px solid black;
box-sizing: border-box;
}이렇게 설정하면 width: 200px;이 padding과 border까지 포함한 크기가 된다.
즉, 전체 너비가 200px을 유지하면서 내부 content 크기가 자동으로 조절된다.
계산 방식은 다음과 같다.
200px (전체 박스 크기) - 10px (left border) - 10px (right border)
- 50px (left padding) - 50px (right padding)
= 80px (content 영역 크기)
즉, box-sizing: border-box;를 적용하면 요소의 총 크기가 예상한 대로 정확하게 유지된다.
border-box 적용하기웹사이트 전체에 box-sizing: border-box;를 적용하면
레이아웃을 훨씬 더 쉽게 다룰 수 있다
* {
box-sizing: border-box;
}이렇게 하면 모든 요소의 width가 padding과 border를 포함한 크기로 설정된다.
즉, 요소 크기를 계산할 때 더 이상 padding과 border를 따로 신경 쓸 필요가 없다.
border-box를 사용하면 좋은 점width를 설정할 때 padding과 border까지 포함해서 크기를 조절할 수 있음.padding을 변경해도 전체 크기가 유지되므로, UI를 정리하기 쉬움.| 설정값 | width의 의미 | 실제 크기 계산 방식 |
|---|---|---|
box-sizing: content-box; (기본값) | 컨텐츠 영역 크기만 포함 | width + padding + border |
box-sizing: border-box; | 컨텐츠 + padding + border 포함 | width 그대로 유지 |
결론: box-sizing: border-box;를 사용하면 예상한 크기를 유지할 수 있다!
앞으로 box-sizing: border-box;를 적용해서 더 직관적인 CSS 레이아웃을 만들어보자! 🚀
https://youtu.be/hlBddMVRL9Q 1. 개요 OpenMediaVault(OMV)는 Debian 기반의 오픈소스 NAS(Network Attached Storage) 운영체제로, 웹 브라우저를 통해 스토리지,…
https://youtu.be/iCUa8Ua8fIg 1. 개요 Raspberry Pi OS Lite를 Raspberry Pi Imager를 이용하여 설치하는 방법을 설명합니다. 2.…
안녕하세요.이번에 CKA(Certified Kubernetes Administrator) 시험에서 90점으로 합격했습니다. (합격 기준 66점) 합격 자체도 기뻤지만, 이번 시험을 준비하면서…
https://youtu.be/n8-wlkZiqio 1. 개요 NFS(Network File System)를 설치하고, rw/ro 및 root_squash 옵션에 따른 접근 제어와 성능을 테스트하는 방법을 정리한 가이드입니다.…
https://youtu.be/4MVxzmepY3s 1. 개요 리눅스에서 정기적으로 실행되는 작업(백업, 로그 정리, 모니터링 등)은 cron 서비스를 통해 자동화할 수 있습니다.…
https://youtu.be/vPfxWFBE1yc 1. 개요 리눅스 서버를 운영할 때 사용자 계정 생성, 비밀번호 설정, 권한 부여, 계정…