Skip to content

CSS Flexbox 레이아웃 치트 시트

Flexbox(유연한 박스) 레이아웃 모델은 컨테이너 내 항목의 크기가 불분명하거나 동적인 경우에도 항목을 정렬하고 공간을 효율적으로 배분하는 방법을 제공합니다.

컨테이너 속성 (Flex Container)

Set on parent: display: flex; or display: inline-flex;

속성 설명 주요 값
flex-direction 주축 방향 row, row-reverse, column, column-reverse
flex-wrap 줄 바꿈 여부 nowrap, wrap, wrap-reverse
flex-flow 방향과 줄 바꿈의 단축 표기 row wrap
justify-content 주축에서의 정렬 방식 flex-start, flex-end, center, space-between, space-around
align-items 교차축에서의 정렬 방식 flex-start, flex-end, center, baseline, stretch
align-content 여러 줄이 생겼을 때 교차축 정렬 flex-start, flex-end, center, space-between, stretch

아이템 속성 (Flex Items)

Set on children:

속성 설명 기본값
order 배치 순서 (값이 작을수록 앞으로) 0
flex-grow 확대 비율 (공간이 충분할 때) 0
flex-shrink 축소 비율 (공간이 부족할 때) 1
flex-basis 공간 배분 전의 기본 크기 auto
flex grow, shrink, basis의 단축 표기 0 1 auto
align-self 특정 항목만 다른 정렬 방식 적용 auto

핵심 개념

  • 주축 (Main Axis): 기본적으로 가로 방향이며, flex-direction에 의해 결정됩니다.
  • 교차축 (Cross Axis): 주축에 수직인 방향.

활용 예시

가로 세로 중앙 정렬

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}

균등 너비 배분

.item {
  flex: 1; /* 남은 공간을 균등하게 차지 */
}

양 끝 정렬

.navbar {
  display: flex;
  justify-content: space-between;
}