Frontend Academy · 강의

위치 지정: relative, absolute, fixed, sticky

position 값으로 요소를 일반 흐름에서 분리해 콘텐츠를 겹쳐 놓고 헤더를 고정하며 고정 사이드바를 만듭니다.

레슨 4/413개 단계

위치 지정: relative, absolute, fixed, sticky은(는) CoddyKit의 무료 Frontend Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Frontend Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Frontend Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

일반 문서 흐름

기본적으로 요소는 일반 문서 흐름을 따릅니다. 블록 요소는 세로로 쌓이고 인라인 요소는 텍스트 안에서 가로로 흐릅니다. position 속성을 사용하면 이 흐름을 벗어나 오버레이, 고정 헤더, 도구 설명을 만들 수 있습니다.

position: static (기본값)

모든 요소는 position: static으로 시작합니다. 이는 일반 문서 흐름에 따라 배치된다는 뜻입니다. top, right, bottom, left 속성은 정적 요소에 영향을 주지 않습니다.

position: relative

position: relative는 요소를 일반 흐름에 유지하면서 top, right, bottom, left를 사용해 원래 위치에서 오프셋할 수 있게 합니다. 특히 절대 위치가 지정된 자손 요소를 위한 위치 지정 문맥을 만듭니다.

.card {
  position: relative;
  top: 10px;    /* shift 10px down from original position */
  left: -5px;   /* shift 5px left */
}

position: absolute

position: absolute는 요소를 일반 흐름에서 제외합니다. 요소는 가장 가까운 위치가 지정된 상위 요소(static이 아닌 모든 position 값)를 기준으로 배치됩니다. 위치가 지정된 상위 요소가 없으면 뷰포트를 기준으로 합니다.

.card {
  position: relative; /* creates context */
}
.card .badge {
  position: absolute;
  top: 12px;
  right: 12px; /* top-right corner of .card */
}

z-index 속성

위치가 지정된 요소는 서로 겹칠 수 있습니다. z-index를 사용해 쌓임 순서를 제어합니다. z-index 값이 높을수록 위에 표시됩니다. 위치가 지정된 요소에서만 작동하며(static에서는 작동하지 않음), 새로운 쌓임 맥락을 만듭니다.

.tooltip {
  position: absolute;
  z-index: 100; /* above other content */
}
.modal {
  position: fixed;
  z-index: 1000; /* above tooltip */
}

position: fixed

position: fixed는 요소를 일반 흐름에서 제외하고 뷰포트에 고정합니다. 페이지와 함께 스크롤되지 않습니다. 고정 헤더, 플로팅 작업 버튼, 쿠키 배너에 적합합니다.

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 64px;
  background: white;
  z-index: 50;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

position: sticky

position: sticky는 두 방식이 결합된 형태입니다. 요소가 임계 지점(top/bottom으로 설정)에 도달할 때까지 페이지와 함께 스크롤되다가 그 지점에 고정됩니다. 긴 표의 섹션 헤더나 헤더를 지난 뒤 고정되는 사이드바에 유용합니다.

.sidebar {
  position: sticky;
  top: 80px; /* sticks 80px from top after scroll */
  align-self: flex-start;
}

position: absolute로 가운데 정렬하기

대표적인 기법은 position: absolute; top: 50%; left: 50%와 transform: translate(-50%, -50%)를 함께 사용해 위치가 지정된 부모 요소 안에서 요소를 정확히 가운데 정렬하는 것입니다.

.modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 480px;
  background: white;
  border-radius: 12px;
}

overflow: hidden으로 절대 위치 지정 자식 요소 자르기

절대 위치가 지정된 자식 요소는 기본적으로 부모 요소의 경계를 넘어설 수 있습니다. 부모 요소에 overflow: hidden을 추가하면 상자 바깥으로 나간 모든 부분이 잘립니다. 카드 이미지 효과와 배지 자르기에 유용합니다.

주의: 원치 않는 쌓임 맥락

일부 속성은 의도치 않게 쌓임 맥락을 만듭니다. 예를 들어 transform, filter, isolation: isolate가 있습니다. 이로 인해 z-index 충돌이 발생할 수 있습니다. z-index가 9999인 요소라도 더 낮은 쌓임 맥락 안에 있으면 다른 요소 뒤에 표시될 수 있습니다.

각 위치 지정 방식을 사용할 때

relative: 오프셋과 위치 지정 기준. absolute: 부모 요소를 기준으로 배치하는 배지, 툴팁, 오버레이. fixed: 계속 표시되는 헤더, 모달, 토스트. sticky: 섹션 헤더, 스크롤을 따라오는 사이드바 탐색. 레이아웃에는 position을 사용하지 말고 Flex 또는 Grid를 사용하십시오.

빠른 확인

요소에 position: absolute; top: 0; right: 0;이 설정되어 있습니다. 부모 요소에 position: relative가 설정되어 있다면 이 요소는 어디에 표시됩니까?

복습: CSS 위치 지정

static은 기본값입니다. relative는 일반 흐름을 벗어나지 않고 위치를 이동하며 위치 지정 기준을 만듭니다. absolute는 일반 흐름에서 벗어나 가장 가까운 위치가 지정된 상위 요소를 기준으로 배치됩니다. fixed는 뷰포트에 고정됩니다. sticky는 스크롤되다가 고정됩니다. 겹침 순서를 제어하려면 z-index를 사용하십시오.

무료로 시작

AI 튜터와 함께 HTML을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
41
레슨
163

자주 묻는 질문

“위치 지정: relative, absolute, fixed, sticky” 강의는 무료인가요?

네 — “위치 지정: relative, absolute, fixed, sticky” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Frontend Academy 강의 전체를 잠금 해제할 수 있습니다. Frontend Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“위치 지정: relative, absolute, fixed, sticky”에서 뭘 배우나요?

position 값으로 요소를 일반 흐름에서 분리해 콘텐츠를 겹쳐 놓고 헤더를 고정하며 고정 사이드바를 만듭니다. 브라우저에서 직접 실행하는 실습 코드로 Frontend Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Frontend Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Frontend Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“위치 지정: relative, absolute, fixed, sticky” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Frontend Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Frontend Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 선택자와 캐스케이드
  2. 색상, 타이포그래피 및 박스 모델
  3. display: block, inline, flex, grid 기초
  4. 위치 지정: relative, absolute, fixed, sticky
← Frontend Academy(으)로 돌아가기