위치 지정 Style 속성 정리
Position
position 종류 및 설명
CSS에서 position
속성은 요소가 문서 내에서 어떻게 배치되는지를 정의합니다.
값 | 설명 |
---|---|
static |
기본값으로, 요소는 문서의 일반적인 흐름에 따라 배치됩니다. top , left 등의 좌표 속성은 무시됩니다. |
relative |
요소를 일반 흐름에 따라 배치한 후, top , left , right , bottom 값을 기준으로 상대적으로 이동합니다. 원래 자리의 공간은 그대로 유지됩니다. |
absolute |
가장 가까운 position 이 relative , absolute , fixed , sticky 중 하나인 조상 요소를 기준으로 절대 위치에 배치됩니다. 해당 요소는 문서 흐름에서 제거됩니다. |
fixed |
**브라우저 뷰포트(화면 전체)**를 기준으로 위치가 고정되며, 스크롤해도 움직이지 않습니다. |
sticky |
요소가 스크롤 위치에 따라 relative 처럼 시작하다가 특정 위치에 도달하면 fixed 처럼 고정되는 하이브리드 방식입니다. 주로 헤더/푸터 고정에 사용됩니다. 부모 컨테이너를 벗어나면 sticky 상태가 해제됩니다. |
static vs fixed
position: fixed와 position: sticky는 요소를 고정하는 방식이 다릅니다. 둘 다 “스크롤 시 위치를 유지”할 수 있지만, 동작 방식에 큰 차이가 있어요
차이요약
속성 | 설명 |
---|---|
position: fixed |
화면(viewport)에 고정 — 스크롤해도 항상 같은 위치에 있음. 부모나 다른 요소와는 상관 없음. |
position: sticky |
부모(스크롤 컨테이너) 안에서 고정 — 스크롤이 특정 위치에 도달하면 그때부터 고정됨. 부모 영역을 벗어나면 사라짐. |
예시로 차이 이해하기
- position: fixed
.footer {
position: fixed;
bottom: 0;
width: 100%;
}
이 경우 footer는 브라우저 하단에 항상 고정됨. 스크롤해도 따라오지 않고, 항상 하단에 보임.
페이지의 어떤 위치에 있어도 상관없이 뷰포트 기준으로 고정됨.
- position: sticky
.footer {
position: sticky;
bottom: 0;
}
이 경우 footer는 부모 요소 안에서만 고정됨.
예를 들어 container가 스크롤 가능한 요소라면, 그 내부를 스크롤할 때 footer는 bottom: 0에 도달하면 그 위치에 고정됨.
하지만 container를 벗어나면 더 이상 보이지 않음. (즉, 부모의 범위를 벗어나면 sticky 효과도 사라짐)
언제 무엇을 써야 하나?
상황 | 추천 속성 |
---|---|
항상 화면 하단에 고정 | fixed |
부모 컨테이너 내에서만 고정하고 싶을 때 | sticky |
반응형 + container 너비 제한하고 싶을 때 | sticky (또는 absolute + container 기준) |
position 관련 속성 정리
속성 | 설명 |
---|---|
top |
위치 지정 속성 중 하나로, 요소의 위쪽 경계를 기준으로 이동 거리를 지정합니다. position 이 relative , absolute , fixed , sticky 일 때만 동작합니다. |
right |
요소의 오른쪽 경계 기준 위치 지정. |
bottom |
요소의 아래쪽 경계 기준 위치 지정. |
left |
요소의 왼쪽 경계 기준 위치 지정. |
z-index |
요소의 쌓이는 순서를 지정합니다. 값이 클수록 위에 배치됩니다. position 이 static 이 아닌 요소에서만 동작합니다. |
inset |
top , right , bottom , left 를 축약해서 쓰는 shorthand 속성입니다. 예: inset: 10px 20px 30px 40px; |
visibility |
요소의 가시성을 제어합니다. visible , hidden , collapse 값 사용 가능. hidden 은 요소를 보이지 않게 하지만 레이아웃 상 공간은 유지됩니다. |
clip-path |
요소의 렌더링 영역을 도형(원, 다각형 등)으로 클리핑할 수 있습니다. clip 은 더 이상 권장되지 않으며, clip-path 로 대체되었습니다. |
width |
요소의 너비를 설정합니다. px , % , em , vw 등 다양한 단위를 사용하거나 auto 를 지정할 수 있습니다. |
height |
요소의 높이를 설정합니다. 방식은 width 와 동일합니다. |
background-color |
요소의 배경 색상을 지정합니다. |
background-image |
요소의 배경 이미지 경로를 지정합니다. 예: background-image: url('image.png'); |
📌 참고:
오래된clip
,layer-background-color
,layer-background-image
등은 HTML4 이전 시대의 레거시 브라우저(MSIE/Netscape)에서 사용되던 속성으로, 현재는 대부분 비표준이며 지원되지 않으므로 사용을 권장하지 않습니다.