웹사이트를 만들 때 레이아웃을 깔끔하게 정렬하는 것은 매우 중요합니다.
과거에는 float, position, table 같은 방법을 사용했지만 복잡하고 유지보수가 어려웠습니다.
이제는 **CSS Flexbox(플렉스박스)**를 사용하면 간단하고 효율적으로 레이아웃을 만들 수 있습니다.
Flexbox는 한 줄의 코드만으로 요소를 가로/세로 정렬하고, 중앙 배치하는 강력한 기능을 제공합니다! 🚀
이 글에서는 Flexbox의 개념, 주요 속성, 실전 예제까지 초보자가 이해하기 쉽게 설명해 드리겠습니다.
1. Flexbox란? (초보자를 위한 개념 정리)
✅ Flexbox(플렉스박스)란?
- CSS에서 레이아웃을 쉽게 만들도록 도와주는 기술
- 요소를 가로, 세로 방향으로 자유롭게 정렬 가능
- 여백을 자동으로 조정하여 반응형 웹에 적합
✅ 왜 Flexbox를 사용해야 할까?
✔️ float, position 없이도 중앙 정렬 가능
✔️ 세로 정렬도 손쉽게 가능 (기존 CSS에서는 어려움)
✔️ 모든 요소의 크기를 자동으로 조정하여 반응형 웹 제작 가능
📌 결론: Flexbox는 HTML 요소를 깔끔하게 정렬할 수 있도록 도와주는 강력한 도구! 🚀
2. Flexbox를 사용하려면? (기본 구조 설명)
Flexbox를 적용하려면 **부모 요소(Display: flex)와 자식 요소(Flex items)**의 개념을 이해해야 합니다.
✅ 기본 코드 구조
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
.container {
display: flex; /* 부모 요소에 flex 적용 */
background-color: lightgray;
}
.item {
width: 100px;
height: 100px;
background-color: steelblue;
color: white;
text-align: center;
line-height: 100px;
margin: 10px;
}
📌 결과: 자식 요소들이 가로 방향(수평)으로 정렬됨! 🚀
3. Flexbox의 주요 속성 (기본 정리)
✅ 1) display: flex; (Flexbox 활성화)
- 부모 요소(container)에 적용해야 Flexbox 기능 사용 가능
- 자식 요소들이 기본적으로 가로 방향(수평)으로 정렬됨
.container {
display: flex; /* 플렉스 컨테이너 활성화 */
}
✅ 2) flex-direction (정렬 방향 설정)
자식 요소들의 배치 방향을 설정할 수 있습니다.
값 | 설명 |
row | 기본값, 가로 정렬(왼쪽 → 오른쪽) |
row-reverse | 가로 정렬 (오른쪽 → 왼쪽) |
column | 세로 정렬(위 → 아래) |
column-reverse | 세로 정렬 (아래 → 위) |
.container {
display: flex;
flex-direction: column; /* 요소들을 세로 방향으로 정렬 */
}
📌 결과: 요소들이 위에서 아래로 정렬됨 🎯
✅ 3) justify-content (가로 정렬)
가로 방향(main-axis)에서 요소들을 정렬하는 속성입니다.
값 | 설명 |
flex-start | 왼쪽 정렬 (기본값) |
flex-end | 오른쪽 정렬 |
center | 가운데 정렬 |
space-between | 양쪽 정렬 (양 끝 요소는 붙고, 나머지는 동일한 간격 유지) |
space-around | 요소들 사이에 같은 간격 추가 |
space-evenly | 요소들 사이 & 양끝 여백 동일 |
.container {
display: flex;
justify-content: center; /* 요소들을 가운데 정렬 */
}
📌 결과: 모든 요소가 가운데 정렬됨 🎯
✅ 4) align-items (세로 정렬)
세로 방향(cross-axis)에서 요소들을 정렬하는 속성입니다.
값 | 설명 |
flex-start | 위쪽 정렬 (기본값) |
flex-end | 아래쪽 정렬 |
center | 가운데 정렬 |
stretch | 높이를 자동으로 늘림 (기본값) |
baseline | 텍스트 기준선에 맞춤 |
.container {
display: flex;
align-items: center; /* 세로 방향 가운데 정렬 */
}
📌 결과: 모든 요소가 세로 방향으로 중앙 정렬됨! 🎯
✅ 5) flex-wrap (줄바꿈 설정)
기본적으로 Flexbox는 한 줄에 모든 요소를 배치하려고 함
하지만, 요소가 많아질 경우 자동 줄바꿈이 필요할 수도 있습니다.
값 | 설명 |
nowrap | 기본값, 한 줄에 강제로 배치 |
wrap | 줄바꿈 허용 (여러 줄로 표시됨) |
wrap-reverse | 줄바꿈 허용 (순서 반대로) |
.container {
display: flex;
flex-wrap: wrap; /* 요소들이 너무 많으면 줄바꿈 허용 */
}
📌 결과: 화면 크기가 작아지면 자동으로 줄바꿈됨! 🎯
4. 실전 예제: 중앙 정렬 박스 만들기
Flexbox를 사용하여 버튼을 가로/세로 중앙에 배치하는 방법!
<div class="center-box">
<button>클릭하세요</button>
</div>
.center-box {
display: flex;
justify-content: center;
align-items: center;
width: 100vw;
height: 100vh;
background-color: lightgray;
}
button {
padding: 10px 20px;
font-size: 16px;
}
📌 결과: 버튼이 화면 정중앙에 배치됨! 🎯
5. Flexbox vs Grid (어떤 것을 써야 할까?)
Flexbox와 Grid는 각각의 장점이 있는 레이아웃 시스템입니다.
비교 항목 | Flexbox | Grid |
정렬 방식 | 한 줄(1D) 정렬에 적합 | 가로+세로(2D) 정렬 가능 |
레이아웃 변경 | 유연하게 조정 가능 | 정확한 배치 필요 |
사용 사례 | 네비게이션, 버튼 정렬, 간단한 레이아웃 | 대형 웹사이트 레이아웃 제작 |
✅ 결론:
- 작은 요소 정렬 → Flexbox 사용
- 전체 레이아웃 디자인 → Grid 사용
6. Flexbox 학습을 위한 추천 사이트
✅ 무료 강의 & 문서
- MDN Flexbox 가이드
- CSS Tricks - Flexbox 가이드
- Flexbox Froggy 게임 (게임으로 Flexbox 배우기)
📌 결론: 직접 코딩하면서 실습해보는 것이 가장 좋은 학습 방법! 🚀
결론
✅ Flexbox는 HTML 요소를 쉽게 정렬할 수 있는 강력한 CSS 기술!
✅ 가로/세로 정렬, 중앙 배치, 줄바꿈 등이 간단하게 가능
✅ 반응형 웹 제작 시 필수적으로 사용됨
✅ 실습을 많이 하면 금방 익숙해질 수 있음!
이제 Flexbox를 활용해서 깔끔한 웹사이트 레이아웃을 만들어 보세요! 🚀
'웹퍼블리싱' 카테고리의 다른 글
반응형 웹이란? 초보자를 위한 개념과 제작 방법 가이드 (0) | 2025.02.20 |
---|---|
웹 퍼블리싱이란? 초보자를 위한 개념 정리와 기본 가이드 (0) | 2025.02.15 |
도메인이란? 초보자를 위한 개념 정리와 무료 도메인 얻는 방법 (0) | 2025.02.11 |
무료로 블로그 만들기: 가장 쉬운 방법 완벽 가이드 (0) | 2025.02.11 |
웹사이트를 만드는 가장 쉬운 방법: 초보자를 위한 가이드 (0) | 2025.02.09 |
프로그레시브 웹 앱(PWA) 만들기: 오프라인에서도 동작하는 웹사이트 구축 가이드 (0) | 2025.02.07 |
웹 성능 최적화를 위한 브라우저 캐싱 전략: 빠른 로딩 속도를 위한 필수 가이드 (1) | 2025.02.05 |
HTML과 CSS로 이메일 템플릿 제작하기: 반응형 이메일 디자인 가이드 (0) | 2025.01.31 |