1차원 레이아웃, Flex Container + Flex Items, 정렬
: display,
flex-flow, flex-direction, flex-wrap,
justify-content,
align-content,
align-items
Flex Container의 화면 출력(보여짐) 특성
flex
: 블록 요소와 같이 Flex Container 정의
block 와 같은 특징을 가지고 있어 flex 속성의 Flex Container들 끼리 수직으로 정렬되며 width : auto
는 자동적으로 최대값이 되려고 함.
inline-flex
: 인라인 요소와 같이 Flex Container 정의
inline 와 같은 특징을 가지고 있어 Flex Container들이 수평으로 정렬이 되며 가로 세로 길이는 최소가 기본값.
주 축을 설정, 수평 / 수직 정렬 설정
기본값, row : 행 축(좌->우) // 수평
row-reverse : 행 축 (우->좌)
column, column-reverse // 수직 관련된 주축, 블록의 기본으로 주로 사용안함.
Flex Items 묶음(줄 바꿈) 여부, 수평 정렬로 가정
기본값, nowrap : 묶음(줄 바꿈) 없음. 즉 하나의 줄에 모든 요소를 끼워 넣어 모양이 찌그러짐
wrap : 여러 줄로 묶음
주 축의 정렬 방법
기본값, flex-start : Flex Items를 시작점으로 정렬 (x축, 수평정렬 기준 왼쪽)
flex-end : Flex Items를 끝점으로 정렬 (x축, 수평정렬 기준 오른쪽)
center : Flex Items를 가운데 정렬
교차 축의 여러 줄 정렬 방법, 수평 정렬이라면 교차 축의 정렬 방법이니깐 수직 정렬을 의미. 이때
flex-wrap : wrap;
으로 여러 줄이 있어야하며 정렬이 가능하도록 어느정도의 여백이 있어야함. 한줄이면 작동 안함.
기본값, stretch : Flex Items를 시작점으로 정렬
flex-start : Flex Items를 시작점으로 정렬
flex-end : Flex Items를 끝점으로 정렬
center : Flex Items를 가운데 정렬
교차축의 한 줄 정렬 방법. 한 줄 정렬 방법이기 때문에
align-content
보다 활용도가 높음
기본값, stretch : Flex Items를 교차축으로 늘림
flex-start : Flex Items를 각 줄의 시작점으로 정렬
flex-end : Flex Items를 각 줄의 끝점으로 정렬
center : Flex Items를 각 줄의 가운데 정렬
: order,
flex, flex-grow, flex-shrink, flex-basis,
align-self
Flex Item의 순서, html 구조를 바꾸지 않고도 화면에 출력되는 요소의 순서를 바꿀 수 있다는 장점
기본값, 0 : 순서 없음
숫자 : 숫자가 작을 수록 먼저 정렬이 됨.
Flex Item의 증가 너비 비율, 너비의 여백을 채우기 위해서 증가하는 비율
기본값 0 : 증가 비율 없음
숫자 : 증가 비율
Flex Item의 감소 너비 비율
기본값, 1 : Flex Container 너비에 따라 감소 비율 적용
숫자 : 감소 비율
flex-shrink : 0;
/* 0으로 설정하는 경우 shrink가 안되고 크기 줄지 않음. container보다 크기가 크더라도 container 밖으로 item이 나옴. item의 크기 변형을 막을 수 있음*/
Flex Item의 공간 배분 전 기본 너비
기본값, auto : 요소의 content(내용) 너비
단위 : px, em, rem 등 단위로 지정
글자가 시작하는 지점과 글자가 끝나는 지점 = 요소가 가지고 있는 content의 기본 너비
/* 요소의 크기를 글자와 상관없이 동일하게 설정하기*/
flex-grow : 1;
flex-basis: 0; /*기본 너비를 0으로 */