👩🏼💻 Flexbox는 CSS의 레이아웃 구성 방식 중 하나로, 아이템을 가로 또는 세로 방향으로 정렬하고 배치하는 데 최적화되어 있다.
.container {
display: flex; /* 또는 inline-flex */
}
flex → block 요소처럼 컨테이너가 전체 너비 차지inline-flex → inline 요소처럼 콘텐츠 흐름에 따라 배치됨<div class="flex-container flex">
<div class="box">A</div>
<div class="box">B</div>
<div class="box">C</div>
</div>
flex-direction: row | row-reverse | column | column-reverse;
row (기본값): 좌 → 우row-reverse: 우 → 좌column: 위 → 아래column-reverse: 아래 → 위<div class="flex-container column">
<div class="box">A</div>
<div class="box">B</div>
<div class="box">C</div>
</div>
flex-wrap: nowrap | wrap | wrap-reverse;
nowrap (기본값): 한 줄에 모든 아이템wrap: 공간이 부족하면 다음 줄로 넘어감<div class="flex-container wrap">
<div class="box">A</div>
...
</div>
justify-content: center | space-between | space-around | flex-start | flex-end;
align-items: center | flex-start | flex-end | stretch | baseline;
justify-content: 주축 방향 정렬align-items: 교차축 방향 정렬.parent {
display: flex;
justify-content: center;
align-items: center;
}
전체 페이지의 가운데에 요소 정렬하기:
.wrapper {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
header {
display: flex;
justify-content: space-between;
align-items: center;
}
header {
position: fixed;
display: flex;
justify-content: space-between;
align-items: center;
top: 0;
width: 100%;
}
주의 : 고정된 메뉴바 때문에 body 또는 main에 padding-top을 추가해 콘텐츠가 가려지지 않게 해야 함
| 속성 | 설명 |
|---|---|
display: flex | Flexbox 활성화 |
flex-direction | 주축 방향 설정 |
flex-wrap | 줄 바꿈 허용 여부 |
justify-content | 주축 정렬 방식 |
align-items | 교차축 정렬 방식 |
inline-flex | 인라인 컨테이너에 Flex 적용 |
fixed 메뉴 | 고정된 UI 구현 시 활용 |