🧑🏫
멘토 한마디
퀴즈는 시험이 아니라 거울이에요. 내가 어디쯤 왔는지 비춰 보는 거죠. 가볍게 도전! 🔍
요소를 원하는 위치에 놓는 일을 레이아웃이라고 합니다. 현대 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 정렬이 전혀 먹지 않을 때 먼저 확인할 것은?
← 이전 챕터 · CH4
Tailwind 시작하기
유틸리티 클래스로 HTML에서 바로 스타일을 입히는 Tailwind의 작동 방식을 익힙니다.
다음 챕터 · CH6 →
컴포넌트로 분리하기
버튼, 카드, 네비처럼 반복되는 묶음을 재사용 단위로 떼어 내 관리하는 법을 배웁니다. 계속 이어가기 🚀
📚 함께 보면 좋은 정보글
AD