수련  ›  기초 — 예쁜 사이트로  ›  CH5 / 7
기초 — 예쁜 사이트로 ⏱ 12분 +150 XP

Flexbox와 Grid 레이아웃

한 줄 정렬에 강한 Flexbox와 격자 배치에 강한 Grid의 차이와, 가운데 정렬 같은 핵심 패턴을 익힙니다.

🧑‍🏫
멘토 한마디
퀴즈는 시험이 아니라 거울이에요. 내가 어디쯤 왔는지 비춰 보는 거죠. 가볍게 도전! 🔍

요소를 원하는 위치에 놓는 일을 레이아웃이라고 합니다. 현대 CSS에는 이를 위한 강력한 도구가 두 가지 있습니다. Flexbox와 Grid입니다. 둘은 경쟁자가 아니라 쓰임이 다른 짝꿍입니다.

Flexbox: 한 방향으로 줄 세우기

Flexbox는 요소들을 한 줄(1차원)로 나란히 정렬하는 데 강합니다. 가로 한 줄, 또는 세로 한 줄. 부모에 display:flex를 주면 자식들이 줄을 섭니다.

.row {
  display: flex;
  justify-content: center; /* 주축(가로) 정렬 */
  align-items: center;     /* 교차축(세로) 정렬 */
  gap: 16px;               /* 요소 사이 간격 */
}
  • justify-content — 주축(기본은 가로) 방향 정렬: center, space-between 등
  • align-items — 교차축(기본은 세로) 방향 정렬
  • flex-direction — 줄의 방향: row(가로) / column(세로)
  • gap — 요소 사이 간격
핵심 화면 정중앙 배치는 Flexbox의 단골 패턴입니다. display:flex; justify-content:center; align-items:center; 세 줄이면 가로·세로 모두 가운데로 옵니다.

Grid: 행과 열의 격자

Grid는 행과 열(2차원)을 동시에 다룹니다. 카드들을 3칸씩 격자로 배치할 때처럼, 가로와 세로를 함께 잡아야 하면 Grid가 깔끔합니다.

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 같은 너비 3칸 */
  gap: 16px;
}

1fr은 '남은 공간의 한 몫'이라는 뜻으로, repeat(3, 1fr)은 같은 너비 세 칸을 만듭니다.

언제 무엇을 쓰나

상황추천
버튼·아이콘을 한 줄로 나란히Flexbox
내비게이션 바, 가운데 정렬Flexbox
카드들을 격자(여러 행·열)로Grid
페이지 전체 큰 구획 나누기Grid
한 방향으로 줄을 세우면 Flexbox, 바둑판처럼 행과 열을 함께 잡으면 Grid. 이 한 문장이 선택의 80%를 해결합니다.

Tailwind에서는

Tailwind는 이 속성들을 짧은 클래스로 제공합니다. flex justify-center items-center gap-4는 위의 Flexbox 예와 같고, grid grid-cols-3 gap-4는 Grid 3칸과 같습니다. 속성을 이해했다면 클래스는 그 별명일 뿐입니다.

주의 Flexbox의 정렬 속성(justify-content, align-items)은 자식이 아니라 부모에 display:flex를 준 상태에서 작동합니다. 정렬이 안 먹으면 부모에 flex가 켜져 있는지부터 확인하세요.
AD

이해도 퀴즈 (10문항)

정답 6개 이상 → +150 XP

배운 내용을 정확히 점검해 보세요. 10문항 중 6문항 이상 맞히면 챕터가 완료되고 경험치(XP)가 적립됩니다. 난이도는 문항마다 하·중·상으로 섞여 있어요.

하 쉬움중 보통상 어려움
중
Q1.Flexbox가 가장 잘하는 배치는?
하
Q2.부모 요소에 Flexbox를 켜는 선언은?
중
Q3.Flexbox에서 주축(가로) 방향 정렬을 담당하는 속성은?
상
Q4.화면 정중앙(가로·세로 모두 가운데) 배치를 만드는 Flexbox 3종 세트는?
중
Q5.Grid가 Flexbox보다 적합한 상황은?
중
Q6.grid-template-columns: repeat(3, 1fr); 이 만드는 것은?
상
Q7.Grid에서 1fr이 뜻하는 것은?
중
Q8.Flexbox와 Grid 선택을 80% 해결하는 기준으로 옳은 것은?
중
Q9.Tailwind 클래스 'flex justify-center items-center gap-4'에 대응하는 일반 CSS는?
상
Q10.justify-content·align-items 정렬이 전혀 먹지 않을 때 먼저 확인할 것은?

📚 함께 보면 좋은 정보글

정보글
Tailwind 30분 압축
정보글
AI 코드 함정 피하기
AD