요소를 효율적이고 동적으로 배열할 수 있는 레이아웃 모델✨
1차원이며 공간이 균등하게 분산된 컨테이너 내부에 요소를 배치할 수 있음
Flexbox는 두 가지 구성 요소로 나뉨
- Flex Container : 표시를 flex 또는 inline-flex로 설정하여 상위 요소의 속성을 정의
➡ display: flex- Flex Itmes : 플렉스 컨테이너의 직계 자식
주측( Main Axis )과 교차축( Cross Axis )을 생각해야함💡
주축은 flex-direction 속성에 의해 정의되고, 교차축은 수직으로 진행됨✔


아이템 개수 늘어나면 아이템의 크기 줄어들며 어떻게든 단일한 줄에 포함시킬 것임
하지만 flex-wrap 설정 해주면 줄 바꿈이 일어나게 됨
➕ flex-direction & flex-wrap 두 개를 같이 쓸 수 있음
➡ flex-flow: column wrap;
주축을 따라 정렬을 의미, flex-start가 기본 값


교차축을 따라 플렉스 item이 배치되는 방식에 대한 기본 동작을 정의

align-items➡한 줄을 기준으로 정렬하는 반면
align-content➡두 줄부터 사용하는데 의미 있음⭕

기본적으로 flex itmes는 소스 코드에 나열된 순서대로 배치
그러나 order 속성은 플렉스 컨테이너에 나타나는 순서를 제어
order 속성의 기본 값은 0

플렉스 박스 아이템의 기본 너비를 자동으로 늘어나거나( flex-grow )
줄어들도록( flex-shrink ) 해서 행 안에 적절한 너비로 배치되도록 맞추는 기능을 함
flex-grow➡기본 값 0, 음수 허용❌


주로 레이아웃을 벗어난 아이템 너비를 분배해서 줄이는데 사용
❌flex-wrap: wrap; 속성 부여한 경우 적용❌
👉 정의하지 않거나 nowrap( 한 줄 ) 속성 부여해야함⭕
flex-shrink 속성의 기본 값 1이기에 이미 적용 되어있음
그러기에 0으로 해준 후 테스트 해보겠음

flex 아이템의 기본 사이즈를 지정하는 속성
기본 값 auto이기에 설정하지 않으면 콘텐츠의 크기에 따라서 사이즈가 결정되게 됨


flex-grow( 늘리기 ), flex-shrink( 줄이기 ) 및 flex-basis( 너비 컨트롤 )가 결합된 약어
✔두 세번째 매개변수( flex-shrink & flex-basis )는 선택 사항
기본 값➡0 1 auto
