CSS의 position 속성은 웹페이지에서 요소의 배치를 제어하는 데 중요한 도구이다.
{
position: static | relative | absolute | fixed | sticky;
}
요소의 기본 위치 지정 방식입니다. 요소는 일반적인 문서 흐름에 따라 배치됩니다.
요소를 문서의 일반적인 흐름에 따라 배치한 후, 이를 기준으로 상대적으로 이동시킵니다.
가장 가까운 위치 지정 조상 요소(static이 아닌 position을 가진 요소)를 기준으로 위치를 설정합니다. 만약 그런 조상이 없으면 뷰포트를 기준으로 합니다.
뷰포트를 기준으로 요소를 배치하며, 스크롤 시에도 고정된 위치에 유지됩니다.
relative와 fixed의 혼합형입니다. 지정된 스크롤 임계값에 도달하기 전까지는 relative처럼 동작하고, 이후에는 fixed처럼 동작합니다.
position 속성은 요소의 스택 컨텍스트에 직접적인 영향을 미칩니다. 스택 컨텍스트는 요소들이 z축에서 쌓이는 방식을 결정합니다.
<div style="position: relative; z-index: 1;">
부모
<div style="position: absolute; z-index: 2;">자식 1</div>
<div style="position: absolute; z-index: 1;">자식 2</div>
</div>
이 예시에서 자식 1은 z-index 값이 더 높기 때문에 자식 2 위에 표시됩니다.
overflow 속성은 요소의 크기를 초과하는 콘텐츠를 처리하는 방식을 정의합니다. 이는 position 속성과 다음과 같이 상호작용합니다.
overflow: clip; : 컨테이너의 overflow 속성은 컨테이너 내부의 위치 지정된 요소에 영향을 미칩니다.
overflow: hidden; : 컨테이너가 overflow: hidden을 가지면, 절대 위치의 자식 요소가 부분적으로 또는 완전히 숨겨질 수 있습니다.
<div style="position: relative; width: 200px; height: 200px; overflow: hidden;">
<div style="position: absolute; top: 250px;">클립된 콘텐츠</div>
</div>
자식 요소는 부모 요소의 경계를 초과했기 때문에 숨겨집니다.