flextbox는 Flexbox 모델은 뷰포트(viewport) 및 엘리먼트 (elemnt) 크기가 동적이거나 알려지지 않은 경우에도 복잡한 계산 없이 문서 내의 요소간 공간을 배치, 정렬 ,분산을 자동으로 해준다.
.box {
display : flex | inline-flex
}
.box {
display : flex ;
flex-direction : row | row-reverse | column | column-reverse;
}
flex-direction 이 row 로 선언 되었을 시 가로 축이 main 축이 되고 세로축이 cross 축으로 결정된다.
flex-direction 이 column 로 선언 되었을 시 가로 축이 cross 축이 되고 세로축이 main 축으로 결정된다.
.box {
display : flex ;
flex-direction : row | row-reverse | column | column-reverse;
flex-wrap: nowrap | wrap | wrap-reverse;
}
nowrap (기본값): 모든 플렉스 항목이 한 줄에 표시됩니다. 이 때 자식 요소들이 부모 요소의 width,height 값을 억지로라도 맞추어 한줄로 표시된다.
wrap: 플렉스 항목은 위에서 아래로 여러 줄로 줄바꿈됩니다.
wrap-reverse: 플렉스 항목은 아래에서 위로 여러 줄로 줄 바꿈됩니다.
.container {
justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right ... + safe | unsafe;
}
.container {
align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe;
}
}
전체 흐름의 cross axis 기준을 정렬하고 싶다하면 align-content 를 사용한다.
order 는 플렉스 또는 그리드 컨테이너 안에서 현재 요소의 배치 순서를 지정합니다. 컨테이너 아이템의 정렬 순서는 오름차순 order 값이고, 같은 값일 경우 소스 코드의 순서대로 정렬된다.
.red {
background-color: red;
order: 2;
}
.yellow {
background-color: yellow;
order: 1;
}
.blue {
background-color: blue;
order: 3;
}
참고자료
css-trcik - A Complete Guide to Flexbox