const Supply = () => {
return (
<Container>
...
</Container>);
};
const Container = styled.div`
position: fixed;
top: 72%;
left: 50%;
transform: translate(-50%, -50%);
height: 100%;
`;
port default Supply;
Next.js로 만든 Supply 페이지 코드의 일부이다.
여기서 페이지가 상하스크롤이 안되는 문제가 있었다.
상하스크롤이 작동하지 않는 이유: Supply 컴포넌트의 Container가 position: fixed 로 설정되어 있기 때문.
position: fixed는 화면에 고정된 위치에 요소를 배치하는 것을 의미함. 요소의 위치는 뷰 포트에 상대적임. 따라서 컨테이너의 높이가 100%로 설정되어있어도 스크롤이 작동하지 않음. (분홍색 친 부분은 이해 안 가서 쳐놨다. 좀 더 찾아봐야겠다.)
스크롤이 작동하려면
position: relative;
혹은
position: absoulte;
를 사용해야 함.
그래야 컨테이너가 문서 흐름에 따라 배치되고 내용이 컨테이너의 크기를 넘어가면 스크롤이 작동함.
근데 지금 하고 있는 프로젝트에서는 position: relative를 하니 모양이 완전 일그러졌다.
그래서 position: absolute를 해서 해결했다.
- position: relative:
- 상대적인 위치를 설정합니다.
- 요소가 문서 흐름에 따라 배치되며, 기본 위치를 기준으로 이동합니다.
- top, right, bottom, left와 같은 속성을 사용하여 요소를 이동시킬 수 있습니다.
- 주변 요소들과의 상호작용에서 영향을 받습니다.
- position: absolute:
- 절대적인 위치를 설정합니다.
- 요소가 문서 흐름에서 제거되고, 부모 요소나 가장 가까운 조상 요소 중 position: relative를 가진 요소를 기준으로 위치합니다.
- 부모 요소의 위치에 영향을 주지 않고, 다른 요소들과 겹칠 수 있습니다.
- top, right, bottom, left와 같은 속성을 사용하여 요소를 정확한 위치에 배치할 수 있습니다.
- position: fixed:
- 고정된 위치를 설정합니다.
- 요소가 뷰포트를 기준으로 위치하며, 스크롤해도 항상 같은 위치에 유지됩니다.
- 다른 요소들과 겹치지 않으며, 다른 요소들에게 영향을 주지 않습니다.
- top, right, bottom, left와 같은 속성을 사용하여 요소를 정확한 위치에 배치할 수 있습니다.
출처: Chatgpt
'Front-End > HTML_CSS' 카테고리의 다른 글
[CSS] CSS-Flex Link Archive (0) | 2023.11.06 |
---|---|
[CSS] tsx 내의 string에서 줄바꿈이 안되는 문제 해결 (0) | 2023.09.22 |
[HTML/CSS] 220318 학습일기 (0) | 2023.03.19 |
[HTML/CSS] 220317 학습일기 (0) | 2023.03.18 |
[HTML/CSS] 230316 학습일기 (0) | 2023.03.17 |