요소를 일반적인 문서 흐름에 따라 배치한다.
positon: sticky
속성을 적용한 요소는 평소 문서 안에서 positon: static
상태와 같이 일반적인 문서 흐름에 따라 배치해 있다가, 스크롤 위치가 임계점(내가 지정한 top
/ bottom
/ left
/ right
위치)에 이르면 position: fixed
와 같이 박스를 화면에 고정할 수 있는 속성이다.
https://codepen.io/ohmy0418/pen/NWvBwGP
top
/ bottom
/ left
/ right
최소 1개 속성을 필수적으로 사용해야 한다.
fixed는 뷰포트에 고정되지만, sticky 박스는 scroll되는 박스 기준으로 고정된다. 즉, scroll 박스가 offset 기준이 된다.
sticky 박스를 scroll 박스에 고정하는 임계점은 스크롤 위치가 결정한다. sticky 박스 자신과 부모의 위치와 크기도 임계점에 영향을 미친다.
sticky 박스의 부모 박스가 scroll 박스를 벗어나면, sticky 박스는 다시 일반적인 흐름(static)에 따라 고정된다.
sticky 박스와 scroll 박스 사이에 overflow: hidden
속성을 적용한 박스가 끼어들면 sticky 박스는 일반적인 흐름(static)을 따른다.
sticky 박스의 부모 scroll 모드는 반드시 height가 설정되어 있어야 한다.
positon: sticky
을 지원하는 브라우저에만 스타일을 적용하려면, @support
규칙을 이용할 수 있다.
@supports (position: sticky) or (position: -webkit-sticky) {
.sticky {
position: -webkit-sticky; /* 사파리 브라우저 지원 */
position: sticky;
top: 4px;
background: red;
}
}
요소를 일반적인 문서 흐름에 따라 배치한다.
top
/ bottom
/ left
/ right
/ z-index
등 position 관련 속성에 대해 아무런 영향을 받지 않는다.
요소를 일반적인 문서 흐름에 따라 배치한다.
자기 자신 기준으로 top
/ bottom
/ left
/ right
따라서 위치 이동이 가능하다.
요소를 일반적인 흐름에서 벗어나, 기존 페이지 레이아웃에 공간을 차지하지 않는다.
상위에서 가장 가깝게 선언된 relative 부모를 기준으로 위치 이동을 한다.
요소를 일반적인 흐름에서 벗어나, 기존 페이지 레이아웃에 공간을 차지하지 않는다.
뷰 포트 (웹 브라우저)의 가장 최상위 블록 기준으로 위치 이동을 한다.
https://developer.mozilla.org/ko/docs/Web/CSS/position