반응형
지금까지 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열로 정리됩니다.
미디어쿼리 없이도 유연한 레이아웃 완성!
반응형
'HTML, CSS' 카테고리의 다른 글
grid-area & template-areas 완전정복 – 코드로 레이아웃 구조를 그려보자! (0) | 2025.06.06 |
---|---|
display: grid 기초 완전정복 – 2차원 레이아웃의 문을 열다 (0) | 2025.06.05 |
gap 완전정복 – margin 없이 깔끔하게 간격 조절하는 법 (0) | 2025.06.03 |
flex-grow, shrink, basis 완전정복 – 공간 나누기의 핵심 공식 (0) | 2025.06.02 |
flex-wrap 완전정복 – 넘치는 요소, 자동 줄바꿈의 모든 것 (0) | 2025.06.01 |