CSS 포지셔닝 마스터링: 초보자를 위한 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 웹 개발 초보자
- CSS 레이아웃 기초 이해에 관심 있는 자바스크립트/프론트엔드 개발자
- 난이도: 초급(기초 개념 설명 중심)
핵심 요약
- 5가지 CSS 포지셔닝 타입:
static
,relative
,absolute
,fixed
,sticky
- 핵심 차이점:
relative
는 레이아웃 공간 유지,absolute
는 부모 기준 위치 조정,fixed
는 뷰포트 기준 고정,sticky
는 스크롤에 따라 고정/이동 전환 - 실무 팁:
relative
는 미세한 위치 조정에,fixed
는 고정 요소(네비게이션 등)에 적합
섹션별 세부 요약
1. `static` 포지셔닝
- 기본값으로 모든 HTML 요소에 적용
top
,left
,right
,bottom
속성 사용 불가- 레이아웃 흐름에 영향 없음
2. `relative` 포지셔닝
- 원래 위치를 기준으로 이동 가능(예:
top: 20px
) - 레이아웃 공간 유지(이동 후에도 공간 차지)
absolute
요소의 기준이 될 수 있음
3. `absolute` 포지셔닝
- 레이아웃 흐름에서 제외(공간 차지 X)
- 가장 가까운
position: relative/absolute/fixed/sticky
요소를 기준으로 위치 - 부모 요소가 없으면
또는
기준
4. `fixed` 포지셔닝
- 뷰포트 기준으로 고정(스크롤 시 이동 X)
- 고정 메뉴, 채팅 위젯 등에 활용
bottom: 0; right: 0;
등으로 위치 조정 가능
5. `sticky` 포지셔닝
relative
처럼 작동하다가 스크롤 위치에 도달하면fixed
처럼 고정- 테이블 고정 열, 고정 헤더 등에 적합
top: 0;
등으로 고정 위치 설정
6. 비교 표 요약
| 포지셔닝 | 레이아웃 공간 유지 | 스크롤 동작 | 기준 요소 |
|---|---|---|---|
| static
| ✅ | ✅ | 문서 흐름 |
| relative
| ✅ | ✅ | 원래 위치 |
| absolute
| ❌ | ❌ | 가장 가까운 위치 지정된 부모 |
| fixed
| ❌ | ❌ | 뷰포트 |
| sticky
| ✅ (초기) | ⚠️ | 스크롤 컨테이너/뷰포트 |
결론
relative
는 미세한 위치 조정,fixed
는 뷰포트 기준 고정 요소에 적합sticky
는 스크롤 시 고정되는 요소(예: 헤더)에 효과적absolute
사용 시 반드시position: relative
부모 요소가 필요함