display :Flex Container를 정의
justify-content :주 축(main-axis)의 정렬 방법을 설정
align-items :교차 축(cross-axis)에서 Items의 정렬 방법을 설정(1줄)
align-content :교차 축(cross-axis)의 정렬 방법을 설정(2줄 이상)
flex-direction :Flex Items의 주 축(main-axis)을 설정
flex-wrap :Flex Items의 여러 줄 묶음(줄 바꿈) 설정
flex-flow :flex-direction와 flex-wrap의 단축 속성
order, flex, align-self 등의 속성을 사용할 수 있다.
display 속성으로 Flex Container를 정의한다.
(보통 요소는 display: block;, display: inline-block 혹은 display: none; 로 표현)
같은 요소의 표시 방법이지만 Block이나 Inline이 아닌 Flex(display: flex
, display: inline-flex
)로 정의한다.
- flex는 Block 특성(수직으로 쌓임)의 Flex Container를 정의.
- inline-flex : Inline 특성(수평으로 쌓임)의 Flex Container를 정의.
두 값은 내부 Items에는 영향을 주지 않는다.
- row는 Items를 수평축으로 표시하므로 이때는 주 축이 수평이며 교차 축은 수직이다.
- column은 Items를 수직축으로 표시하므로 주 축은 수직이며 교차 축은 수평이다.
즉, 방향(수평, 수직)에 따라 주 축과 교차 축이 달라진다.
-기본적으로 Items는 한 줄에서만 표시되고 줄 바꿈 되지 않는다.
이는 지정된 크기(주 축에 따라 width나 height)를 무시하고 한 줄 안에서만 가변한다.
- nowrap : 모든 Itmes를 여러 줄로 묶지 않음(한 줄에 표시) default값
- wrap : Items를 여러 줄로 묶음 (여러줄에 걸쳐 표시)
- wrap-reverse : items를 wrap의 역 방향으로 여러 줄로 묶음 (여러줄에 걸쳐 표시)
- flex-start : Items를 시작점(flex-start)으로 정렬 default값
- flex-end:Items를 끝점(flex-end)으로 정렬
- center : Items를 가운데 정렬
- space-between : 시작 Item은 시작점에, 마지막 Item은 끝점에 정렬되고 나머지 Items는 사이에 고르게 정렬
- space-around : Items를 균등한 여백을 포함하여 정렬
⭐ flex-wrap 속성을 통해 Items가 여러 줄(2줄 이상)이고 여백이 있을 경우만 사용.
- stretch - Container의 교차 축을 채우기 위해 Items를 늘림 default((속성 width 혹은 height)가 값이 auto(기본값)일 경우 교차 축을 채우기 위해 자동으로 늘어남)
- flex-start - Items를 시작점(flex-start)으로 정렬
- flex-end - Items를 끝점(flex-end)으로 정렬
- center - Items를 가운데 정렬
- space-between - 시작 Item은 시작점에, 마지막 Item은 끝점에 정렬되고 나머지 Items는 사이에 고르게 정렬됨
- space-around - Items를 균등한 여백을 포함하여 정렬
⭐ Items가 한 줄일 경우 align-items 속성을 사용.
⭐ Items가 flex-wrap을 통해 여러 줄(2줄 이상)일 경우에는 align-content 속성이 우선 -> align-items를 사용하려면 align-content 속성을 기본값(stretch)으로 설정해야 함.
align-items는 Container 내 모든 Items의 정렬 방법을 설정한다. 필요에 의해 일부 Item만 정렬 방법을 변경하려고 할 경우 align-self를 사용 !
이 속성은 align-items 속성보다 우선순위를 갖는다