CSS 레이아웃 마스터링: Flexbox와 Grid의 초보자 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
CSS 레이아웃 기초를 배우는 초보 개발자 (난이도: 초급)
핵심 요약
- Flexbox는
display: flex;
로 1차원 레이아웃(행 또는 열)을 관리하며,justify-content
와align-items
로 정렬 가능 - Grid는
display: grid;
로 2차원 레이아웃(행+열)을 지원하며,grid-template-columns
와grid-template-rows
로 격자 구조 정의 - 사용 시기: 단일 방향 레이아웃(네비게이션, 카드 레이아웃)은 Flexbox, 복잡한 2차원 구조(전체 페이지 레이아웃)는 Grid
섹션별 세부 요약
1. Flexbox란?
display: flex;
로 컨테이너 설정 가능flex-direction
:row
,column
지정 가능justify-content
: 수평 정렬(예:center
,space-between
)align-items
: 수직 정렬(예:flex-start
,stretch
)gap
: 아이템 간 간격 설정
2. CSS Grid란?
display: grid;
로 격자 레이아웃 활성화grid-template-columns
:repeat(auto-fit, minmax(200px, 1fr))
등으로 열 정의grid-template-rows
:100px
,auto
등으로 행 크기 지정grid-column
/grid-row
: 아이템이 격자 영역을 초과할 수 있도록 스팬 설정
3. Flexbox vs Grid 사용 시기
- 레이아웃 유형: Flexbox는 1차원(예: 카드 레이아웃), Grid는 2차원(예: 전면 페이지 레이아웃)
- 정렬 정밀도: Flexbox는 단일 축 정렬, Grid는 행/열 모두 정밀 조정 가능
- 예시: Flexbox는 네비게이션 바, Grid는 게시판 레이아웃에 적합
결론
- 실무에서는 Flexbox와 Grid의 강점을 분리하여 사용하는 것이 효과적 (예: 헤더는 Flexbox, 메인 콘텐츠는 Grid)
display: flex;
와display: grid;
를 병렬로 사용해 복합 레이아웃 구현 가능- 실습: 실제 프로젝트에서 레이아웃 예제를 직접 구현해 두 레이아웃의 차이를 경험해보기