코딩/CSS

CSS Position 속성: relative와 absolute의 차이 완벽 가이드

moodyblues 2021. 12. 5. 15:20
728x90

CSS의 position 속성 중 relative와 absolute는 웹 디자인에서 중요한 역할을 하며, 그 차이를 정확히 아는 것이 중요합니다.

CSS Position 속성이란?

CSS에서 position 속성은 요소의 위치를 정의하는 데 사용됩니다. 웹 페이지의 레이아웃을 구성할 때 요소가 어디에 배치되는지 제어하는 중요한 역할을 합니다.

relativeabsolute는 가장 많이 사용되는 두 가지 위치 속성입니다. 이 둘은 겉보기에 비슷해 보일 수 있지만, 동작 방식은 완전히 다릅니다.

Position: relative와 absolute의 기본 개념

1. Position: relative

relative는 요소를 자신의 원래 위치를 기준으로 이동시킵니다.

  • 특징:
    • 요소의 기본 위치를 유지하면서, 추가적으로 top, right, bottom, left 값을 사용해 이동 가능.
    • 다른 요소에는 영향을 주지 않음.
.box {
  position: relative;
  top: 20px;
  left: 10px;
}

 

설명: 이 코드는. box 요소를 원래 위치에서 아래로 20px, 오른쪽으로 10px 이동시킵니다.

  • 언제 사용할까?
    요소를 약간 조정하고 싶을 때 적합합니다. 예: 이미지나 텍스트 위치 미세 조정.

2. Position: absolute

absolute가장 가까운 position이 설정된 부모 요소를 기준으로 위치를 지정합니다. 만약 부모 요소에 position 속성이 없다면, 기준은 <html>이 됩니다.

  • 특징:
    • 요소가 문서 흐름에서 제거됩니다(다른 요소가 해당 공간을 차지).
    • 기준점(parent)이 명확해야 함.
  • 예제 코드:
.container {
  position: relative;
}
.box {
  position: absolute;
  top: 50px;
  left: 30px;
}

설명:. box는. container를 기준으로 위에서 50px, 왼쪽에서 30px 떨어진 위치에 배치됩니다.

  • 언제 사용할까?
    모달 창, 툴팁, 드롭다운 메뉴와 같이 특정 위치에 고정해야 하는 경우 적합합니다.

relative와 absolute의 차이점 정리

구분 Position: relative Position: absolute
기준점 자신의 원래 위치 가장 가까운 position이 설정된 부모 요소
문서 흐름 원래 위치를 유지 문서 흐름에서 제거됨
사용 목적 요소를 미세하게 조정 특정 요소를 특정 위치에 고정
영향 범위 다른 요소에 영향을 주지 않음 다른 요소가 해당 공간을 차지

두 속성을 활용한 실제 예제

1. 메뉴바와 서브메뉴 디자인

<div class="menu">
  <div class="item">메뉴 1</div>
  <div class="item">메뉴 2
    <div class="submenu">
      <p>서브 메뉴 1</p>
      <p>서브 메뉴 2</p>
    </div>
  </div>
</div>
.menu {
  position: relative;
}
.submenu {
  position: absolute;
  top: 100%;
  left: 0;
}
  •  설명:
    서브메뉴(.submenu)는 .menu를 기준으로 하단에 표시됩니다.

2. 이미지 위 텍스트 배치

<div class="image-container">
  <img src="example.jpg" alt="Example Image">
  <p class="text">이미지 위 텍스트</p>
</div>
.image-container {
  position: relative;
}
.text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
}
  • 설명:
    텍스트(.text)가 이미지 중앙에 정확히 위치하도록 배치합니다.

언제 어떤 속성을 선택해야 할까?

  • Position: relative를 사용:
    • 요소의 기본 위치를 기준으로 약간 조정이 필요한 경우.
    • 콘텐츠가 문서 흐름에 영향을 주어야 할 때.
  • Position: absolute를 사용:
    • 특정 위치에 고정된 요소(툴팁, 모달 창 등)가 필요한 경우.
    • 부모 요소를 기준으로 위치를 정밀하게 설정해야 할 때.

결론

relativeabsolute는 CSS 레이아웃 디자인에서 필수적인 속성입니다. relative는 요소의 기본 위치를 기준으로 조정할 때, absolute는 부모 요소를 기준으로 고정할 때 사용됩니다. 이 둘의 차이를 정확히 이해하면 웹 페이지 레이아웃을 더욱 효율적으로 설계할 수 있습니다.