flex
:요소들이 포함된 큰 박스에 flex를 선언하고, 안에 있는 요소들에게 유연하게 배치하는 속성들을 부여하여 레이아웃 구조를 잡는 것.
ex)
display: flex;
flex로 레이아웃을 설계한다고 선언할 때 사용하는 구문.
flex-grow
:자식 요소의 수가 적거나 그 크기가 작아 공간이 남을 때 항목의 크기를 늘려 채워주는 방법을 정의하는 속성.
1을 사용하면 공간이 남아도 한 줄 가득 꽉 채울 수 있다.
속성 값 | 설명 |
0 | 기본 값 |
1 | 항목들이 모두 1이면 같은 크기 |
양수 | -값을 높게 줄수록 더 늘어남 -공간이 부족할 때에는 어떤 값도 무의미함 |
flex-grow: 1;
flex-shrink
:자식 요소가 많거나 그 크기가 커서 공간이 부족할 때 항목의 크기를 줄여 채워주는 방법을 정의하는 속성.
기본값이 1이기 때문에 자식 요소는 기본적으로 좁아진다.
(공간이 넘쳐도 한 줄로 줄여서 채울 수 있다)
속성 값 | 설명 |
0 | 공간이 부족해도 항목의 크기를 줄일 수 X |
1 | 기본 값으로, 자식 요소들이 많아서 컨테이너에서 넘치면 안 넘치게 알아서 좁아짐 |
양수 | -값을 높게 줄수록 더 좁아짐. (수축지수가 자동 계산됨) -공간이 남을 때에는 어떤 값을 주어도 무의미함. |
flex-shrink: 1;
flex-basis
:자식 요소들의 초기 길이를 지정하는 속성
float과 다르게 width 속성을 주지 않고 flex-basis를 사용한다.
속성값 | 설명 |
auto | 기본 값 |
n px | 양수를 주어 원하는 가로의 크기를 부여함. |
flex-basis: auto;
flex-direction
:자식 요소를 나열하는 방향을 지정하는 속성.
부모 요소에게 지정해주어야 한다.
속성값 | 설명 |
column | 위에서 아래로 나열 |
column-reverse | 아래에서 위로 나열 |
row | 좌측에서 우측으로 나열 (기본 값) |
row-reverse | 우측에서 좌측으로 나열 |
flex-direction: column;
justify-content
:공간이 남을 때 (flex-grow: 0;)일 대 자식 요소들을 가로로 정렬하는 속성
속성값 | 설명 |
flex-start | 시작쪽으로 정렬 (보통 왼쪽) (flex-direction:row-reverse 일 때에는 오른쪽) |
flex-end | 끝쪽으로 정렬 (보통 오른쪽) (flex-direction:row-reverse 일 때에는 왼쪽) |
center | 중앙 정렬 (가운데 정렬) |
space-between | 양쪽 정렬 (요소들의 사이를 찢어놓음) |
space-around | 요소 좌우 동일 간격 |
justify-content: space-between;
flex-wrap
:flex 자식 요소들의 줄바꿈 방식을 지정ㅇ하는 속성
속성값 | 설명 |
wrap | 자식 요소들이 많으면 다음 줄로 넘침 |
nowrap | 자식 요소들이 많아도 한 줄 안에 배치됨 |
wrap-reverse | 자식 요소들이 많으면 다음 위 줄로 넘침 |
flex-wrap: wrap;
flex-flow
:flex-direction과 flex-wrap을 나란히 붙여 하나의 속성처럼 쓸 수 있다.
그렇기 때문에 flex-flow의 기본값은 flex-flow: row nowrap;이다.
flex-flow: row nowrap;
align-items
:자식 요소들을 세로로 정렬하는 속성
속성값 | 설명 |
flex-start | 시작쪽으로 정렬 (보통 위쪽) (flex-direction: column-reverse 일 때는 아래쪽) |
flex-end | 시작쪽으로 정렬 (보통 아래쪽) (flex-direction: column-reverse 일 때는 위쪽) |
center | 세로 중앙 정렬 |
baseline | 글자의 baseline을 기준으로 정렬 |
stretch | 부모 요소의 세로 크기를 따라 확장됨 (기본값) |
align-items: center;
order
:자식 요소들의 순서를 바꾸어주는 속성
몇 번째에 배치할지 순서를 지정해줍니다.
속성값 | 설명 |
0 | 순서를 바꾸지 않음 (기본값) |
양수 | 원하는 순서를 지정 |
음수 | 좌측으로 자리를 바꾸는 횟수 |
<div style="order:1;"> </div>
align-self
:자식 요소 중 선택된 항목에 대해서만 세로로 다시 정렬하는 속성.
속성들은 align-items의 속성들과 같다.
align-self: flex-end;
align-content
:flex-wrap; 일 경우 여러 줄을 세로로 정렬하는 속성
속성들은 align-items의 속성들과 같다.
align-content: flex-start;