HTML, CSS
실전 예제 – Flexbox로 반응형 카드 UI 만들기
jonbeo
2025. 6. 4. 10:25
반응형
지금까지 Flexbox의 핵심 속성들을 하나씩 알아봤습니다.
이번엔 그 모든 걸 한 번에 실습해보는 카드 UI 예제로 정리해볼게요!
- display: flex
- flex-wrap
- gap
- flex-basis, flex-grow
- justify-content, align-items
전부 다 써보면서 유연하고 정돈된 레이아웃을 만들어봅니다.
✅ 완성될 레이아웃 미리 보기
- 화면이 넓을 땐 카드가 3개씩 가로 정렬
- 좁아지면 자동으로 줄바꿈 (flex-wrap)
- 카드 사이 간격은 gap으로 관리
- 각 카드는 일정한 크기로 나열되며, 여백에 따라 비율로 조정 (flex-basis, flex-grow)
🧱 HTML 구조
<div class="card-wrap">
<div class="card">Card 1</div>
<div class="card">Card 2</div>
<div class="card">Card 3</div>
<div class="card">Card 4</div>
<div class="card">Card 5</div>
</div>
🎨 CSS 스타일
.card-wrap {
display: flex;
flex-wrap: wrap;
gap: 20px;
justify-content: center;
padding: 20px;
}
.card {
flex: 1 1 300px;
background: #ffe4b5;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px #ccc;
text-align: center;
}
🧠 속성별 체크포인트
속성 | 의미 |
flex-wrap: wrap | 카드가 한 줄에 다 안 들어갈 때 줄바꿈 |
gap: 20px | 카드 사이 간격 통일 |
flex: 1 1 300px | 최소 300px, 여유 공간 있으면 더 커짐 |
justify-content: center | 가운데 정렬 |
text-align: center | 카드 안 텍스트 정렬 |
📱 반응형에서도 자연스럽게 작동
가로 폭이 좁아지면 자동으로 2열 → 1열로 정리됩니다.
미디어쿼리 없이도 유연한 레이아웃 완성!
반응형