CSS] position: sticky로 메뉴바 고정시키기!
2024. 10. 18. 17:54ㆍDevlog
오늘도 개발을 하던 중 측면에 넣어둔 카카오톡 상담하기 및
nav bar 상단으로 이동하는
메뉴바를 특정 스크롤까지 내렸을 때,
고정되어 따라 내려오는 기능을 하고 싶었다.
(원래는 특정 스크롤까지 내려오면 출력되게 해 놨음)
Goo글링을 하고 열심히 했지만, 정확한 설명이 안돼서 찾지 못하다가
Sticky라는 기능을 찾았다!
그것에 대해 정리해보려고 한다!(짧으니 쓰윽보면편하다!)
1. position: sticky란?
position: sticky는 특정 요소가 스크롤 중에 지정된 위치에 도달하면 그 자리에서 고정되는 CSS 속성이다.
일반적인 상대적 위치와 고정된 위치의 혼합형으로, 스크롤하다가 고정될 자리를 정할 수 있는 것이 특징이다.
(나는 Styled-in-component를 적용 중이라, 아예 내가 사용한 코드를 가져왔다.)
import React from "react";
import styled from "styled-components";
// Sticky 컴포넌트 스타일 정의
const StickyHeader = styled.h2`
position: sticky;
top: 20px;
background-color: #f7f7f7;
padding: 10px;
z-index: 100;
box-shadow: 0 4px 2px -2px gray;
`;
const Container = styled.div`
height: 1500px; /* 스크롤이 생기도록 긴 높이 설정 */
padding: 20px;
`;
const StickyComponent = () => {
return (
<Container>
<StickyHeader>
<KakaoChat/>
<ScrollUpBtn/>
</StickyHeader>
</Container>
);
};
export default StickyComponent;
2. 코드 설명
(위 예시에서는 두 가지 컴포넌트를 styled-components로 만들었다)
- StickyHeader: position: sticky 속성과 함께 top: 20px을 지정해, 화면 상단에서 20px 떨어진 위치에 고정되게 했다. z-index로 다른 요소 위에 배치되도록 설정하고, 고정 상태일 때 시각적으로 구분되도록 box-shadow를 추가했다.
- Container: 충분한 스크롤이 발생하도록 height를 1500px로 설정했다. 이로 인해 StickyHeader가 스크롤 중에 고정되는 모습을 확인할 수 있다.
짧은 결론!
position: sticky는 UX를 향상하는 데 도움이 되는 아주 유용한 CSS 속성이다.
다음 프로젝트에서 스크롤할 때 특정 요소를 고정시키고 싶다면,
이 방법을 꼭 한 번 사용해 보길 바란다!
반응형
'Devlog' 카테고리의 다른 글
SSR과 CSR의 차이, 무엇이 다를까? (4) | 2025.02.07 |
---|---|
React] Redux와 상태에 대한 이해 (2) | 2024.10.24 |
웹에서 제공하는 파일 다운로드 방식] 정적 파일 vs 동적 파일 (6) | 2024.10.15 |
주니어 개발자의 우당탕탕 개발새발 스토리 (로직 설계) (6) | 2024.10.11 |
CSS- Overflow속성에 대하여 (2) | 2024.10.08 |