Flexbox : 웹 브라우저에서 요소를 수평 또는 수직으로 정렬하는 방법을 제공하는 CSS 레이아웃 모듈
Flexible Box module은 flexbox 인터페이스 내의 아이템 간 공간 배분과 강력한 정렬 기능을 제공하기 위한 1차원 레이아웃 모델로 설계되었다.
Flexbox를 사용하면 요소를 부모 요소의 가로 또는 세로 방향으로 정렬하거나, 요소 간의 간격과 크기를 조정할 수 있다.
Flexbox의 주요 개념은 다음과 같다.
Flex Container : flexbox 레이아웃을 적용하는 부모 요소
Flex Item : Flex Container 안에 들어가는 자식 요소
Main Axis : Flex Container에서 Flex Item이 정렬되는 주축 (flex-direction에 따라 결정됨)
Cross Axis : Main Axis에 수직으로 교차하는 축
Justify Content : Main Axis에서 Flex Item을 어떻게 정렬할 것인지를 결정
Align Items : Cross Axis에서 Flex Item을 어떻게 정렬할 것인지를 결정
Flex Container의 Main Axis 방향을 결정 (row, row-reverse, column, column-reverse)
Flex Item이 Flex Container에서 한 줄에 모두 표시될 것인지, 아니면 여러 줄에 걸쳐서 표시될 것인지 결정
Flex Grow : Flex Item이 Flex Container 내에서 어떻게 공간을 확장할지 결정
Flex Shrink : Flex Container의 크기가 줄어들 때 Flex Item이 어떻게 줄어들지 결정
Flexbox는 각각의 요소에게 다음과 같은 속성을 적용하여 레이아웃을 구성한다.