> 웹 프론트엔드 > CSS 튜토리얼 > `overflow:hidden`이`position:sticky` 동작을 중단하는 이유는 무엇입니까?

`overflow:hidden`이`position:sticky` 동작을 중단하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-06 18:31:12
원래의
365명이 탐색했습니다.

Why Does `overflow: hidden` Break `position: sticky` Behavior?

overflow:hidden이 position:sticky 동작을 방해할 수 있는 이유

웹 개발에서 position:sticky를 사용하면 사용자가 요소를 컨테이너 내에 표시하고 배치할 수 있습니다. 상위 컨테이너 또는 뷰포트를 스크롤합니다. 그러나 컨테이너에 Overflow:hidden이 적용되면 position:sticky가 의도한 대로 작동하지 않을 수 있습니다.

원래 문제:

다음 HTML 코드를 고려하세요.

<div class="parent">
  <div class="sticky">
    ...
  </div>
</div>
로그인 후 복사

고정 요소는 사용자로서 상위 div 내에 계속 표시되고 배치됩니다. 스크롤됩니다.

오버플로 문제:

overflow:hidden을 상위 div에 추가하면 고정 요소가 더 이상 컨테이너 상단에 달라붙지 않고 스크롤됩니다. 밖으로 view.

<div class="parent">
  <div class="sticky">
    ...
  </div>
</div>

로그인 후 복사

원인:

overflow:hidden은 컨테이너 경계를 넘어서는 모든 콘텐츠를 숨깁니다. 여기에는 컨테이너의 가시 영역 외부에 위치할 때 끈적한 요소가 포함됩니다.

해결 방법:

overflow:hidden이 position:sticky를 방해하지 않도록 방지하려면 다음을 수행해야 합니다. 두 가지 옵션:

  • 현대 기술 사용: 이후 이 질문의 초기 게시에서 CSS는 포함: 페인트를 도입하도록 발전했습니다. 상위 컨테이너에 contain: 페인트를 설정하면 넘치는 콘텐츠가 빠져나가는 것을 방지하고 고정 요소가 계속 표시되고 올바르게 배치되도록 할 수 있습니다.
.parent {
  contain: paint;
}
로그인 후 복사
  • 오버플로 속성 조정 : 또는 오버플로 속성을 숨김 대신 자동 또는 스크롤로 설정할 수 있습니다. 이렇게 하면 콘텐츠가 컨테이너 경계를 넘어 확장될 수 있으며 끈적한 요소가 계속 표시됩니다.
.parent {
  overflow: auto;
  /* or */
  overflow: scroll;
}
로그인 후 복사

위 내용은 `overflow:hidden`이`position:sticky` 동작을 중단하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿