- Frederick Philips Brooks
Mythical Man-Month 저자
Flex란?
CSS에서 제공하는 레이아웃 모듈 중 하나로, 유연하고 반응형인 웹 페이지 레이아웃을 만드는 데 도움이 됩니다. Flexbox 모델을 사용하면 가로 또는 세로 방향으로 유연한 컨테이너를 만들고, 그 안에 배치되는 유연한 아이템들을 쉽게 배치할 수 있습니다. Flexbox는 간단하고 직관적인 레이아웃 설계를 가능하게 하며, 반응형 웹 디자인에서 매우 유용합니다.
Flexbox 레이아웃은 컨테이너 엘리먼트와 그 안에 들어가는 자식 엘리먼트들을 정의하는 것으로 시작합니다. display: flex 속성을 사용하여 컨테이너 엘리먼트를 정의합니다. 컨테이너 안에 있는 자식 엘리먼트들을 Flex 아이템이라고 하며, flex-direction, justify-content, align-items, align-content 속성의 값에 따라 배치됩니다
01.flex-grow
자식 요소가 적거나 그 크기가 작아 공간이 남을 때 항목의 크기를 늘려 채워주는 방법을 정의합니다.
속성값 | 속성 설명 |
0 | (기본값) |
1 | 항목들이 모두 1이면 같은 크기임 |
양수 | 값을 높데 줄수록 더 늘어남 공간이 부족할 때는 어떤 값도 무의미 |
02.flex-shrink
자식 요소가 많거나 그 크기가 커서 공간이 부족할때 각 항목의 크기를 줄여 채워주는 방법을 정의합니다.
속성값 | 속성 설명 |
0 | 공간이 부족해도 항목의 크기를 줄일 수 없음 |
1 | (기본값) - 자식 요소들이 많아서 컨테이너를 넘치면 안 넘치게 알아서 좁아짐 |
양수 | 값을 높게 줄수록 더 좁아짐.(내부적으로 수축지수가 자동 계산됨) 공간이 남을 때는 어떤 값도 무의미 |
03.flex-basis
flex 자식 요소들의 초기 길이를 지정하는 속성입니다.
속성값 | 속성 설명 |
auto | (기본값) |
50px. 100px, ... | 원하는 가로 크기를 부여함 |
04.flex-direction
자식 요소를 나열하는 방향을 지정하는 속성입니다. 부모요소에 지정합니다.
속성 값 | 속성 설명 |
column | 위에서 아래로 나열 |
column-reverse | 아래에서 위로 나열 |
row (기본값) | 좌측에서 우측으로 나열 |
row-reverse | 우측에서 좌측으로 나열 |
05.justify-content
공간이 남을 떄, 즉 flex-grow: 0;일 때 자식 요소들을 정렬하는 속성입니다.
속성 값 | 속성 설명 |
flex-start(기본값) | 시작쪽으로 정렬(보통 왼쪽, flex-direction : row-reverse일 떄는 오른쪽) |
flex-end | 끝쪽으로 정렬(보통 오른쪽, flex-direction : flex-reverse일 때는 왼쪽) |
center | 중앙으로 정렬 |
space-between | 양쪽 정렬 |
space-around | 요소 좌우 동일 간격 |
06.flex-wrap
flex 자식 요소들의 줄 바꿈 방식을 지정하는 속성입니다.
속성 값 | 속성 설명 |
wrap | 자식 요소들이 많으면 다음 줄로 넘침 |
nowrap(기본) | 자식 요소들이 많아도 한줄 안에 배치됨 |
wrap-reverse | 자식 요소들이 많으면 다음 위 줄로 넘침 |
07.align-items
자식 요소들을 세로 정렬하는 속성입니다.
속성 값 | 속성 설명 |
flex-start | 시작 쪽으로 정렬 |
flex-end | 끝쪽으로 정렬 |
center | 세로 중앙 정렬 |
baseline | 글자의 baseline 기준으로 정렬 |
stretch(기본값) | 부모 요소의 세로 크기를 따라 확장됨 |
08.order
자식 요소들의 순서를 바꿔주는 속성입니다. 몇 번째에 배치할지 순서를 지정합니다.
속성 값 | 속성 설명 |
0 (기본값) | 순서를 바꾸지 않음 |
양수 | 원하는 순서를 지정 |
음수 | 좌측으로 자리를 바꾸는 횟수 |
예시