-
postion fixed와 sticky기타 2023. 3. 15. 22:55
fixed와 sticky는 언뜻보면 비슷할지도 모르지만, 분명히 다른 쓰임새를 가진다.
fixed는 사용자가 보는 화면에서 완전 고정된 위치를 가지지만, sticky는 상대적인 위치를 가지다가, 화면에서 벗어나면 fixed처럼 움직이는 특성을 가진다.
<div class="container"> <div> <h1>HELLO WORLD</h1> </div> <div class="side"> <p>GOOD</p> </div> </div>.container { height: 1000px; } .side { /* position: fixed; */ position: sticky; top: 20px; left: 50px; height: 100px; width: 100px; }위와 같이 웹이 구성되었을 때, 스크롤이 맨 위에 위치한 화면은 다음과 같다.
처음에 sticky는 상대적인 위치를 가진다.

display: sticky; 스크롤을 밑으로 내리면, sticky값이 지정된 div는 다음과 같이 고정된 위치를 갖는다.

display: sticky; 설정한 top: 20px; 만큼의 고정된 위치를 가진다.
반면, 이번엔 주석을 반대로 하여 fixed를 포지션으로 해보자. 그리고 글자를 잘 보이게 하기 위해서 붉은 색으로 변경하였다.
.container { height: 1000px; } .side { position: fixed; /* position: sticky; */ top: 20px; left: 50px; height: 100px; width: 100px; color: red; }이때 스크롤이 맨 위에 있으면 다음과 같이 보이게 된다.

position: fixed; 스크롤을 내려도 GOOD의 위치는 항상 고정되어 있다.

position: fixed; 이와 같이 fixed와 sticky는 어느 때는 비슷하게 작동하지만, 엄연한 차이가 있고 sticky를 잘 활용하면 좋은 UI 개발에 편리함이 있을 것 같다.
다만, IE에서 sticky가 지원되지 않으므로 브라우저 환경에 따라서 사용할 수 있는지 확인이 필요하다.
'기타' 카테고리의 다른 글
WebSocket에 대해서 (& Socket.IO) (0) 2023.03.31 정적 웹사이트 (static website) CSR (0) 2023.03.21 webpack-bundle-analyzer 사용하기 & craco 설정 (1) 2023.03.14 개발한 서비스 (클라이언트 & 서버)의 배포전략에 대해서 (0) 2023.03.08 Emmet으로 HMTL, CSS 더 빠르게 작성하기 (VS Code) (0) 2023.03.06