CSS 가운데 정렬 완전 정복: flex·grid·margin auto
데브노트 편집팀·2026.06.06·6분 읽기
ADVERTISEMENT
"이걸 어떻게 가운데에 두지?"는 프론트엔드의 영원한 질문입니다. 상황별로 가장 깔끔한 방법을 정리합니다.
1) flex로 수평+수직 한 번에
가장 자주 쓰는 만능 패턴입니다.
.parent {
display: flex;
justify-content: center; /* 주축(가로) 가운데 */
align-items: center; /* 교차축(세로) 가운데 */
min-height: 300px;
}
justify-content는 주축, align-items는 교차축이라는 점만 기억하면 됩니다. flex-direction: column이면 두 축의 의미가 뒤바뀝니다.
2) grid는 더 짧다
.parent {
display: grid;
place-items: center; /* 가로·세로 동시에 가운데 */
min-height: 300px;
}
place-items: center 한 줄이면 끝입니다. 단일 요소를 정중앙에 둘 때 가장 간결합니다.
3) 블록 요소 수평 가운데: margin auto
너비가 정해진 블록 요소라면 고전적인 방법이 여전히 최고입니다.
.box {
width: 600px;
max-width: 100%;
margin: 0 auto; /* 좌우 자동 → 수평 가운데 */
}
단, margin: auto는 수직 가운데엔 (일반 흐름에서) 동작하지 않습니다. 수직까지 필요하면 flex/grid를 쓰세요.
4) 텍스트와 인라인 요소
.title {
text-align: center; /* 인라인/텍스트 가로 가운데 */
line-height: 48px; /* 한 줄 텍스트의 세로 가운데(높이=line-height) */
}
상황별 빠른 선택
| 상황 | 방법 |
|---|---|
| 자식 하나를 정중앙 | place-items: center (grid) |
| 여러 자식 가운데 정렬 | flex + justify/align: center |
| 너비 있는 블록 수평만 | margin: 0 auto |
| 텍스트만 | text-align: center |
마무리 체크리스트
- 정중앙 한 방엔 grid
place-items: center - 여러 자식·방향 제어는 flex
- 블록 수평만이면
margin: 0 auto - 축이 헷갈리면
flex-direction을 먼저 확인
가운데 정렬은 "무엇을, 어느 축으로"만 분명히 하면 한 줄로 끝납니다.
ADVERTISEMENT
함께 보면 좋은 글
프론트엔드· 6분
CSS Flexbox vs Grid: 언제 무엇을 써야 할까
Flexbox와 Grid는 경쟁이 아니라 역할이 다릅니다. 1차원이면 Flex, 2차원이면 Grid라는 원칙과 실제 레이아웃 예제로 선택 기준을 명확히 정리합니다.
2026.07.07
프론트엔드· 5분
CSS Flexbox vs Grid 차이와 선택 기준: 1차원 vs 2차원 레이아웃
Flexbox와 Grid는 언제 무엇을 써야 할까요? 1차원과 2차원이라는 핵심 차이부터 실전 코드, 선택 기준까지 한 번에 정리합니다. 더 이상 헷갈리지 마세요.
2026.06.24
프론트엔드· 7분
Next.js App Router: 서버 컴포넌트와 클라이언트 컴포넌트 제대로 나누기
App Router에서 가장 헷갈리는 'use client' 경계. 서버/클라이언트 컴포넌트의 차이와 데이터 패칭 위치, 흔한 실수를 실전 기준으로 정리합니다.
2026.07.08