CSS Flexbox 레이아웃

React Native 애플리케이션 레이아웃은 CSS Flexbox 레이아웃 기술을 사용합니다. Flexbox 레이아웃에 대해 잘 모른다면 Flexbox를 먼저 학습해야 합니다. React Native 컴포넌트는 flexDirection, justifyContent, alignItems 속성 조합을 통해 컴포넌트를 레이아웃(배치) 합니다.

영상 강의

Flexbox 레이아웃이 생소하다면 영상 강의를 시청하며 CSS 모던 레이아웃 - Flexbox 시작하기! - codepen 실습을 진행해보세요.

  1. Flexbox 레이아웃 시작하기
  2. Flexbox 컨테이너 속성
  3. Flexbox 아이템 속성

1. Flexbox 레이아웃 시작하기

Flexbox 레이아웃 축(Axis)에 대한 개념과 주축(Main Axis) 기준 정렬에 대해 학습합니다.

설명
주 축(Main Axis) Flexbox 컨테이너 설정된 요소의 flex-direction 속성 값이 설정된 방향 (row, column)
교차 축(Cross Axis) 주 축과 수직으로 교차하는 방향

CSS Flexbox의 주 축 방향 기본 값은 행(row)이지만, React Native는 기본 값은 열(column) 입니다. 주 축(Main Axis) 방향을 변경하려면 다음과 같이 React 스타일 설정 방법을 사용해 설정합니다.

<View style={{flexDirection: 'row'}} />
1

2. Flexbox 컨테이너 속성

Flexbox 컨테이너 요소에 설정 가능한 속성을 학습합니다.

속성 설명
display: flex | inline-flex Flex 컨테이너 요소로 설정
flex-direction 주 축 방향 설정
flex-wrap 래핑(wrapping) 설정
flex-flow 주 축 방향, 래핑 속성 속기형 설정
justify-content 주 축 기준 정렬
align-items 교차 축 기준 정렬 (개별 Flexbox 아이템 제어)
align-content 교차 축 기준 정렬 (Flexbox 아이템 그룹 제어)

3. Flexbox 아이템 속성

Flexbox 아이템 요소에 설정 가능한 속성을 학습합니다.

속성 설명
flex-grow 넓은 공간에 맞춰 크기를 키우도록 설정 (기본 값: 0)
flex-shrink 협소한 공간에 맞춰 크기를 줄이도록 설정 (기본 값: 1)
flex-basis 아이템 크기의 기본 값을 설정 (기본 값: auto)
flex [grow shrink basis]을 한 번에 설정하도록 하는 속기형 속성 (사용 권장)
align-self 아이템에 직접 교차 축 방향 정렬 설정
order 아이템 배치 순서 설정

React Native에서 컴포넌트에 설정 가능한 flex 값은 오직 하나의 숫자만 사용 가능합니다.

<View style={{flex: 1}} />
1

플레이그라운드

Flexbox Playground에서 각 속성이 설정하는 역할을 인터랙티브 하게 반응하는 결과로 살펴볼 수 있습니다.

참고

보다 심도 깊은 학습을 위해 아래 나열된 Flexbox 학습자료를 참고해 읽어보세요.