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 학습자료를 참고해 읽어보세요.