본문 바로가기
프로그래머로의 여정

CSS의 position: relative와 position: absolute의 차이점

by nunaaa 2025. 8. 30.

CSS의 position: relative와 position: absolute의 차이점을 자세히 설명드리겠습니다.

position: relative

기본 개념:

  • 요소가 원래 위치를 기준으로 이동
  • 원래 자리는 그대로 차지하고 있음 (다른 요소들이 밀려나지 않음)
  • 문서 흐름(document flow)에 그대로 참여

특징:

.relative-box {
    position: relative;
    top: 20px;    /* 원래 위치에서 아래로 20px */
    left: 30px;   /* 원래 위치에서 오른쪽으로 30px */
}
  • 다른 요소들은 이 요소가 원래 자리에 있다고 생각
  • 시각적으로만 이동하고, 레이아웃에는 영향 없음
  • 자식 요소의 absolute positioning 기준점 역할

position: absolute

기본 개념:

  • 가장 가까운 positioned 부모(relative, absolute, fixed)를 기준으로 위치 결정
  • 원래 자리에서 완전히 빠져나옴 (다른 요소들이 그 자리를 채움)
  • 문서 흐름에서 제외

특징:

.absolute-box {
    position: absolute;
    top: 20px;    /* 부모 기준 위에서 20px */
    left: 30px;   /* 부모 기준 왼쪽에서 30px */
}
  • 다른 요소들은 이 요소가 존재하지 않는다고 생각
  • 부모가 positioned가 아니면 <body> 기준으로 위치
  • 레이아웃에서 완전히 분리

실제 예시

HTML:

<div class="container">
    <div class="box1">Box 1</div>
    <div class="box2 relative">Box 2 (relative)</div>
    <div class="box3">Box 3</div>
</div>

<div class="container">
    <div class="box1">Box 1</div>
    <div class="box2 absolute">Box 2 (absolute)</div>
    <div class="box3">Box 3</div>
</div>

CSS:

.relative {
    position: relative;
    top: 20px;
    left: 20px;
    background: red;
}

.absolute {
    position: absolute;
    top: 20px;
    left: 20px;
    background: blue;
}

 

결과:

  • relative: Box 2가 이동해도 Box 3는 원래 자리에 그대로
  • absolute: Box 2가 사라진 것처럼 되어 Box 1과 Box 3가 붙어버림

주요 사용 사례

position: relative

  • 약간의 위치 조정이 필요할 때
  • absolute 요소의 부모 컨테이너로 사용
  • 애니메이션에서 원래 위치 기준 이동

position: absolute

  • 드롭다운 메뉴
  • 툴팁, 모달창
  • 오버레이 요소
  • 정확한 좌표에 요소 배치

핵심 차이점 요약

구분 relative absolute

기준점 자신의 원래 위치 부모 요소
공간 차지 원래 자리 유지 자리에서 빠짐
문서 흐름 참여함 제외됨
다른 요소 영향 없음 레이아웃 변경됨

이런 차이점 때문에 보통 relative는 부모 컨테이너에, absolute는 자식 요소에 많이 사용합니다.