일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SK바이오사이언스
- 확률
- CSS
- Gap
- series
- Codility
- Prefix Sums
- Photoshop
- grid
- 에라토스테네스의 체
- 상태
- stl
- pandas
- Flexbox
- Javascript
- align-items
- dataframe
- 알고리즘
- Design Pattern
- c++
- 소수
- spring
- c
- skt membership
- 포토샵
- 백준
- 통신사할인
- 수학
- margin
- 강화학습
Archives
- Today
- Total
sliver__
Float 클리어링 완전 정복! – Clearfix Hack 실습 본문
728x90
안녕하세요! 이번 포스팅에서는 플로트 레이아웃에서 자주 마주치는 부모 요소 높이 붕괴(Collapse) 문제를 해결하는 방법, 특히 “clearfix hack” 기법을 빠르게 배워볼게요. ⚡️
🔍 1. 문제 복습: 높이 붕괴
- 이전 강의에서 header 안의 h1·nav에 각각 float를 주자
- 부모인 header가 자식의 높이를 인식하지 못해 height: 0 으로 산정
- 패딩이나 border 없이는 배경·테두리가 사라지는 현상 발생
⚙️ 2. 가장 쉬운 해결법: 빈 엘리먼트 추가
<header class="main-header clearfix">
…
</header>
.clearfix::after {
content: ""; /* pseudo-element 생성 필수 */
display: block; /* block 레벨로 만들어야 clear가 동작 */
clear: both; /* 왼쪽/오른쪽 float 모두 해제 */
}
- ✅ 동작은 하지만, HTML에 불필요한 빈 <div>가 반복 생성되어 비효율적
🚀 3. 모던한 해법: Clearfix Hack
- HTML 구조: 별도 빈 엘리먼트 없이, 부모에 clearfix 클래스 추가
<header class="main-header clearfix">
…
</header>
- CSS 구현: ::after 의사요소 활용
.clearfix::after {
content: ""; /* pseudo-element 생성 필수 */
display: block; /* block 레벨로 만들어야 clear가 동작 */
clear: both; /* 왼쪽/오른쪽 float 모두 해제 */
}
- 원리
- ::after 가 부모의 마지막 자식으로 삽입되어
- 마치 “투명한 빈 블록”을 추가한 것처럼 작동해
- 떠 있는(floated) 자식 요소들이 종료된 이후에 레이아웃 흐름을 복구
✅ Clearfix Hack 장·단점 비교
구분빈 <div> 클리어링Clearfix Hack
HTML 오염 | ✔️ (불필요한 마크업 증가) | ❌ (구조 깨끗) |
재사용성 | ❌ (매번 추가 필요) | ✔️ (클래스 한 번만 적용) |
유지보수 편의 | ❌ (분산된 <div> 관리) | ✔️ (CSS 한 곳에서 관리) |
✍️ 마무리
이제 플로트 레이아웃의 높이 붕괴 문제를 깔끔히 해결할 수 있는 clearfix hack를 배웠습니다.
다음 포스팅에서는 이 지식을 활용해 간단한 2단 레이아웃(sidebar+content) 을 float만으로 구현해볼게요.
도움이 되셨다면 공감 ❤️과 구독 ⭐ 부탁드려요! 댓글로 궁금한 점 남겨주세요~
728x90
'Frontend > CSS' 카테고리의 다른 글
기본 박스 모델에서 벗어나기 – box-sizing: border-box 완전 정복 (0) | 2025.05.02 |
---|---|
CSS - 간단한 2단 레이아웃(float) 완성하기! (0) | 2025.05.02 |
CSS Float 속성 완전 정복! – 플로트 레이아웃 기본 이해 (0) | 2025.05.02 |
웹 페이지 레이아웃 완전 정복! - CSS 레이아웃 기초 (0) | 2025.05.02 |
CSS Positioning 기초부터 활용까지 (0) | 2025.05.02 |
Comments