HTML, CSS

position 속성 완전 정복 – static, relative, absolute, fixed, sticky 차이점 쉽게 정리하기

jonbeo 2025. 6. 23. 10:26
반응형

 

 

CSS에서 레이아웃을 만들다 보면 "이 요소 왜 여기 있어?", "왜 고정이 안 되지?" 같은 혼란이 생기죠.
그 핵심 원인은 바로 position 속성을 정확히 이해하지 못해서입니다.

이번 포스팅에서는 CSS position 속성의 5가지 값인
static, relative, absolute, fixed, sticky를 실제 예제와 함께 정리해드립니다.


 

✅ position: static (기본값)

모든 요소는 기본적으로 position: static입니다.
별도로 좌표를 지정해도 무시되며, HTML의 문서 흐름에 따라 배치됩니다.

div {
  position: static;
  top: 20px; /* ❌ 적용되지 않음 */
}

 


 

✅ position: relative

기존 위치(문서 흐름)를 기준으로 상대적으로 이동합니다.
원래 자리 자체는 공간을 그대로 차지합니다.

div {
  position: relative;
  top: 20px; /* 아래로 20px 이동 */
}
  • 원래 위치가 기준
  • z-index 조절 가능
  • 부모 역할도 가능 (→ absolute 자식의 기준점이 됨)

 

✅ position: absolute

가장 가까운 position이 설정된 조상 요소를 기준으로 위치가 결정됩니다.
해당 요소는 문서 흐름에서 빠짐 → 공간을 차지하지 않음.

div {
  position: absolute;
  top: 0;
  right: 0;
}
  • 부모 요소에 position: relative 설정하면 기준점이 거기로 설정됨
  • z-index를 통한 레이어 겹침 처리에 유리

 

✅ position: fixed

브라우저 뷰포트를 기준으로 고정됩니다.
스크롤을 해도 위치가 바뀌지 않음.

div {
  position: fixed;
  bottom: 20px;
  right: 20px;
}
  • 대표 사례: “Top으로 가기” 버튼, 고정 네비게이션 바

 

✅ position: sticky

스크롤 위치에 따라 relativefixed동적으로 전환되는 하이브리드 포지션입니다.
부모 영역을 벗어나면 고정되지 않습니다.

div {
  position: sticky;
  top: 0;
}
  • 상단 고정 헤더, 섹션별 제목 고정 등에 많이 사용

 

✅ 정리표 – position 5종 비교

속성 기준 위치 문서 흐름 영향 특징
static 없음 (기본) 포함됨 top/right 등 무시됨
relative 자기 위치 기준 포함됨 레이아웃 틀은 유지
absolute 조상 요소 기준 제외됨 겹치기 좋음
fixed 브라우저 창 기준 제외됨 항상 화면 고정
sticky 스크롤 위치 기준 포함됨 조건부 고정

 

반응형