position relative와 absolute 차이
absolute를 썼더니 요소가 예상하지 못한 위치로 날아가는 상황
- 문제 상황 확인
- 짧은 코드로 재현
- 브라우저에서 결과 점검
position relative와 absolute 차이에서 먼저 볼 부분
relative는 자기 위치를 기준으로 조정하고, absolute는 가장 가까운 위치 기준 부모를 찾아 배치됩니다.
relative는 원래 자리의 흐름을 유지한 채 위치를 조금 조정합니다. 단독으로 쓰기보다 absolute 자식의 기준점으로 자주 사용됩니다.
absolute는 문서 흐름에서 빠져나와 기준 부모 안에서 배치됩니다. 부모 중 position이 static이 아닌 요소를 기준으로 삼습니다.
카드 안 오른쪽 위 배지처럼 특정 영역 안에 고정하고 싶은 요소는 부모에 relative, 자식에 absolute를 주면 안정적입니다.
배지 위치 잡기
.card { position: relative; }
.badge {
position: absolute;
top: 12px;
right: 12px;
}
이 예제는 그대로 복사해서 확인하는 것보다 한 줄씩 바꿔보는 쪽이 더 도움이 됩니다. 태그 이름, 선택자, 변수 이름, 함수 실행 위치를 조금씩 바꾸면 어떤 부분이 결과에 영향을 주는지 직접 확인할 수 있습니다.
position relative와 absolute 차이 비교 기준
| 구분 | relative | absolute |
| 문서 흐름 | 유지 | 빠짐 |
| 기준 | 자기 원래 위치 | 위치 기준 부모 |
| 대표 사용 | 기준점 만들기 | 배지, 툴팁 |
잘못 작성했을 때 나타나는 흐름
CSS 글은 속성 하나만 외우기보다 부모 요소와 자식 요소의 관계를 같이 확인하는 방식으로 읽는 것이 좋습니다.
스타일이 적용되지 않을 때는 개발자 도구에서 어떤 규칙이 취소선 처리되는지 먼저 보면 원인을 빠르게 좁힐 수 있습니다.
모바일 화면에서는 고정 너비, 긴 코드, margin 조합이 문제를 만들기 쉬우므로 작은 화면 기준까지 함께 확인해야 합니다.
브라우저에서 직접 확인하는 순서
먼저 화면에 나타나는 결과를 보고, 그다음 코드에서 방금 수정한 부분을 확인하세요. 결과가 예상과 다르다면 콘솔 오류, 파일 경로, 선택자 이름, 태그 닫힘, 실행 순서 중 하나가 흔한 원인입니다.
초보 단계에서는 정답 코드를 한 번에 외우기보다 실패한 코드와 수정한 코드를 나란히 비교하는 방식이 좋습니다. 이 글의 예제를 기준으로 작은 값을 바꿔보면 다음 글을 읽을 때도 기준이 더 선명해집니다.
실습 후 점검할 항목
- absolute 자식의 부모에 position:relative가 있는지 확인하기
- top/right/bottom/left 기준을 명확히 하기
- 겹침이 생기면 z-index도 함께 확인하기
- 레이아웃 전체를 absolute로 만들지 않기
공식 문서로 더 확인하기: CSS 공식 문서