position은 요소가 어떻게 배치되는지와 offset 속성(top/right/bottom/left)이 적용되는지를 제어합니다.
css
{ : static; }
{ : relative; }
{ : absolute; }
{ : fixed; }
{ : sticky; }
absolute는 가장 가까운 positioned 조상(static이 아닌 것) 기준으로 요소를 배치합니다. 그래서 부모에 position: relative를 설정해 기준점으로 만듭니다.
.card {
position: relative; /* 위치 지정 컨텍스트가 됨 */
}
.badge {
position: absolute; /* .card 기준으로 배치 */
top: 8px;
right: 8px; /* badge를 카드의 오른쪽 위 모서리에 고정 */
}
이 relative-부모 / absolute-자식 패턴은 어디에나 있습니다: badge, dropdown, tooltip, 닫기 버튼 등.
.navbar { position: fixed; top: 0; } /* 스크롤하는 동안 화면에 고정 */
.section-header { position: sticky; top: 0; } /* 콘텐츠와 함께 스크롤하다 상단에 고정 */
top: 0)에 닿기 전까지 relative처럼 동작하다가, 컨테이너가 화면에 보이는 동안 거기에 머무름 — 섹션 헤더에 적합.absolute/fixed 요소는 정상 흐름에서 제거되므로 공간을 확보하지 않습니다 — 형제 요소가 마치 없는 것처럼 동작해 겹칠 수 있습니다. 이를 대비하세요(예: fixed navbar를 보정하기 위해 padding 추가).
position은 오버레이, sticky 헤더, 모달, dropdown, badge에 필수적입니다.
relative-부모/absolute-자식 관계와 fixed-vs-sticky 차이는 끊임없이 사용하는 실무적 핵심입니다.