Contents
see List작성일 2015. 08. 05.
CSS vertical-align 완벽 가이드
CSS에서 요소를 수직 정렬하는 것은 많은 개발자들이 어려워하는 부분입니다. vertical-align 속성과 다양한 수직 정렬 기법을 알아봅니다.
1. vertical-align 속성 이해하기
vertical-align은 인라인 요소나 테이블 셀에서만 동작합니다.
/* 인라인 요소에서 사용 */
img {
vertical-align: middle;
}
/* 테이블 셀에서 사용 */
td {
vertical-align: middle;
}2. Flexbox로 수직 정렬 (권장)
.container {
display: flex;
align-items: center; /* 수직 중앙 */
justify-content: center; /* 수평 중앙 */
height: 200px;
}
/* 자식 요소 개별 정렬 */
.child {
align-self: flex-start; /* 상단 */
align-self: center; /* 중앙 */
align-self: flex-end; /* 하단 */
}3. Grid로 수직 정렬
.container {
display: grid;
place-items: center; /* 수직, 수평 모두 중앙 */
height: 100vh;
}4. 절대 위치 + Transform
.parent {
position: relative;
height: 300px;
}
.child {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}5. Line-height 활용 (단일 라인)
.button {
height: 50px;
line-height: 50px; /* height와 동일하게 */
text-align: center;
}vertical-align 속성값
| 값 | 설명 |
|---|---|
| baseline | 부모 기준선 정렬 (기본값) |
| top | 라인 박스 상단 정렬 |
| middle | 부모 중앙 정렬 |
| bottom | 라인 박스 하단 정렬 |
| sub | 아래첨자 위치 |
| super | 위첨자 위치 |
| 길이/퍼센트 | 기준선에서 이동 |
실전 팁
- 블록 요소에는 vertical-align이 작동하지 않음
- 이미지 하단 여백 문제는 vertical-align: bottom 으로 해결
- 신규 프로젝트는 Flexbox나 Grid 사용 권장
- IE 지원 필요시 table-cell 기법 활용
html
| No | 작성일 | Title |
|---|---|---|
| 3364 | 2026. 08. 16. | HTML 폼 오류를 누구나 이해하게 만드는 방법: label·aria-describedby·aria-live 실전 가이드 |
| 3332 | 2026. 08. 07. | CSS @layer로 스타일 충돌 줄이기: 대규모 웹 프로젝트 우선순위 설계 가이드 |
| 3300 | 2026. 07. 30. | CSS Container Query 실전 적용: 컴포넌트가 놓인 영역에 맞춰 반응형 만들기 |
| 3269 | 2026. 07. 22. | 접근성 있는 모달 만들기: HTML dialog와 포커스 관리 실전 가이드 |
| 3241 | 2026. 07. 14. | 반응형 이미지 최적화: picture·srcset·sizes로 모바일 전송량 줄이기 |
| 3186 | 2026. 07. 05. | HTML Popover API로 자바스크립트 드롭다운 메뉴 줄이기 |
| 3144 | 2026. 06. 27. | CSS 컨테이너 쿼리 운영 가이드: 화면이 아니라 컴포넌트 폭에 맞춰 레이아웃 바꾸기 |
| 3088 | 2026. 06. 19. | 접근성 있는 모달 창 구현: dialog, focus, 닫기 동작을 함께 설계하기 |
| 2999 | 2026. 06. 11. | HTML 폼 검증 운영 가이드: 브라우저 기본 검증과 서버 검증을 함께 설계하기 |
| 2943 | 2026. 06. 03. | CSS 컨테이너 쿼리 실전 적용: 화면이 아니라 컴포넌트 너비에 맞춰 카드 레이아웃 바꾸기 |