기존의 display, position을 통해 웹의 레이아웃 개발은 생각할 부분이 많고 한계가 어느정도 존재해 개발이 어려웠음
이를 쉽게 하기 위해 flexbox 방식이 추가되었고 자주 사용됨. 특별한 계산 없이 정렬을 쉽게 할 수 있다.
flex box = flex container + flex item
정렬하고자하는 요소의 부모 요소에 display: flex;를 추가하면 flex를 사용할 수 있다.

가로 혹은 세로의 정해둔 방향을 기준으로 프로퍼티를 정렬하는 것이 핵심 개념.





- flex flow: row wrap; = flex-direction: row; + flex-wrap: wrap;
justify-content: flex-direction으로 정해진 방향을 기준으로 수평으로 item을 정렬하는 방법을 정함.



- space-around: 아이템 사이의 공간을 동일한 간격으로 아이템을 배치
- space-between: 시작과 끝에 배치하고 남은 가격을 동일하게 아이템을 배치
align-items: flex-direction으로 정해진 방향을 기준으로 수직으로 item을 정렬하는 방법을 정함



align-content: flex-direction으로 정해진 방향을 기준으로 수직으로 여러 줄인 item을 정렬하는 방법을 정함.


flex-grow: flex 아이템의 확장과 관련된 속성, 단위 없는 숫자값을 사용. 기본:0
0일 경우 flex contatiner의 크기가 커져도 flex item의 크기가 커지지 않고 원래 크기를 유지.
1 이상의 숫자일 경우 flex contatiner의 크기가 커지면 그 크기를 맞추기 위해flex item의 크기가 커진다.


flex-shrink: flex 아이템의 축소와 관련된 속성. 0과 정수를 이용.기본: 1


flex-basis: flex 아이템의 기본 크기를 결정함. 단위를 써줘야함. 기본: auto

flex: flex-grow, flex-shrink, flex-basis의 축약형