“포지션 : 스티키;” 작동하지 않는 CSS 및 HTML


177

탐색 막대를 스크롤하면 맨 위에 고정하고 싶지만 작동하지 않으며 이유가 없습니다. 도움을 줄 수 있다면 다음은 HTML 및 CSS 코드입니다.

.nav-selections {
  text-transform: uppercase;
  letter-spacing: 5px;
  font: 18px "lato",sans-serif;
  display: inline-block;
  text-decoration: none;
  color: white;
  padding: 18px;
  float: right;
  margin-left: 50px;
  transition: 1.5s;
}

.nav-selections:hover{
  transition: 1.5s;
  color: black;
}

ul {
  background-color: #B79b58;
  overflow: auto;
}

li {
  list-style-type: none;
}
<nav style="position: sticky; position: -webkit-sticky;">
  <ul align="left">
    <li><a href="#/contact" class="nav-selections" style="margin-right:35px;">Contact</a></li>
    <li><a href="#/about" class="nav-selections">About</a></li>
    <li><a href="#/products" class="nav-selections">Products</a></li>
    <li><a href="#" class="nav-selections">Home</a></li>
  </ul>
</nav>


10
position : sticky는 어디에 붙어야하는지 전화로 조정해야합니다
G-Cyrillus

36
부모 요소도 조심해야합니다. position: sticky당신이 조심 아니라면 그것은 인 flexbox 내부의 경우 작업을 중지 할 수 있습니다 및이의 경우도 실패 overflow: hidden또는 overflow: auto그것과 어떤 사이에 내부 (신체 루트 또는 가장 가까운 조상 오버플로 : 스크롤) 스크롤
user56reinstatemonica8을

2
@ user56reinstatemonica8 OMG thankkkkyou 정보] 말해 훨씬 그렇게 overflow: hidden하고 overflow: auto! 나는이 쓰레기를 작동 시키려고 며칠 동안 머리를 긁어왔다
Oneezy

답변:


206

고정 위치는 상대 위치와 고정 위치의 하이브리드입니다. 요소는 지정된 임계 값을 초과 할 때까지 상대적 위치로 처리되며,이 시점에서 고정 위치로 처리됩니다.
...
당신은 적어도 하나 임계 값을 지정해야합니다 top, right, bottom, 또는 left행동을 끈 위치에 대한 예상대로. 그렇지 않으면 상대 위치와 구별 할 수 없습니다. [ 출처 : MDN ]

따라서 귀하의 예에서는 top속성 을 사용하여 끝에 붙어야 할 위치를 정의해야 합니다.

html, body {
  height: 200%;
}

nav {
  position: sticky;
  position: -webkit-sticky;
  top: 0; /* required */
}

.nav-selections {
  text-transform: uppercase;
  letter-spacing: 5px;
  font: 18px "lato", sans-serif;
  display: inline-block;
  text-decoration: none;
  color: white;
  padding: 18px;
  float: right;
  margin-left: 50px;
  transition: 1.5s;
}

.nav-selections:hover {
  transition: 1.5s;
  color: black;
}

ul {
  background-color: #B79b58;
  overflow: auto;
}

li {
  list-style-type: none;
}
<nav>
  <ul align="left">
    <li><a href="#/contact" class="nav-selections" style="margin-right:35px;">Contact</a></li>
    <li><a href="#/about" class="nav-selections">About</a></li>
    <li><a href="#/products" class="nav-selections">Products</a></li>
    <li><a href="#" class="nav-selections">Home</a></li>
  </ul>
</nav>


124
일반적 으로이 대답은 작동하기에 끈적 거리지 않으며 부모도 오버플로 속성을 가져서는 안됩니다.
ViliusL

당신의 의견에 감사드립니다. OP의 답변 이외의 다른 예에서는 내 대답으로는 충분하지 않을 것입니다. 다른 답변은 이것을 지적합니다 :)
Marvin

나는 트릭은 그 위치의 끈은 알려진 높이의 스크롤 부모에 속하는 아이들에게 적용 할 수있는 생각, (A 인 flexbox에서 직접 아이들은 다른 플렉스 항목에서 계산 된 노하우 높이가)
code4j

@ViliusL 귀하의 의견에 감사드립니다! 그것이 내가 위치에 가지고있는 문제였습니다 : 끈적 끈적한, 나는이 정보를 어디에서나 찾을 수 없었기 때문에 당신에게 그렇지 않다면 그것을 알지 못했을 것입니다.
Piotr Szlagura

sticky position은 overflow 속성을 가진 부모를 가져서는 안되며, 일부 웹 브라우저에서도 sticky가 지원되지 않습니다
Rohan Shenoy

331

상위 요소에 오버플로 세트가 있는지 확인하십시오 (예 :) overflow:hidden. 토글 해보세요. =)보다 DOM 트리를 위로 올라 가야 할 수도 있습니다.

이것은 position:sticky하위 요소에 영향을 줄 수 있습니다 .


36
여러 번 당신을 투표 할 수 있기를 바랍니다! 인정해야 할 것보다 더 자주 물었습니다.
Alexander Varwijk

2
이것이 정답입니다. 그러나 문제를 일으키는 상위 요소를 찾기가 어려울 수 있습니다. 문제를 식별 한 부모의 overflow 속성을 식별하는 데 도움이되는 jquery 스크립트를 작성했습니다 (콘솔에서 실행). 스크립트는 몇 줄이므로 아래 스크립트를 포함하는 답변을 추가했습니다.
danday74

5
나는 당신의 "부모 요소
che-azeh

5
나는 또한 "s"를 놓쳤다 :(하고이 문제였다. 많은 곳에서 사람들이 당신은 부모없는 모든 부모를 확인해야한다는 물품. 내가 전화하면 확인하여 내 문제를 발견 $(stickyElement).parents().css("overflow", "visible")웹 콘솔에서하는 것이 도움이 될 것이다 그것은했다. 그럼 난 위치 overflow:hidden문제를 일으킨 스타일을 가진 먼 부모님 저는이 답변을 더 자세히 읽으시기 바랍니다
Mariusz Pawelski

2
당신이 확인할 필요가있는 경우 overflow:hidden: 모든 부모 / 주어진 요소의 조상 확인하는 브라우저 콘솔에서이 스크립트를 실행할 수 있습니다 gist.github.com/brandonjp/478cf6e32d90ab9cb2cd8cbb0799c7a7
brandonjp

100

나는 같은 문제가 있으며 여기서 답을 찾았습니다 .

요소가 예상대로 고정되지 않으면 가장 먼저 확인해야 할 것은 컨테이너에 적용된 규칙입니다.

특히, 상위에 설정된 오버 플로우 특성을 찾으십시오. 당신은 사용할 수 없습니다 : overflow: hidden, overflow: scroll또는 overflow: autoa의 부모에 대한 position: sticky요소입니다.


이것은 정답이지만 문제를 일으키는 부모를 쉽게 식별하는 데 도움이되는 내 대답을 참조하십시오.
danday74

10
당신은 가장 가까운 부모 컨테이너를 제외한 모든 부모 요소뿐만 아니라 확인해야합니다 .
Mariusz Pawelski

그렇습니다. 정확하게 대답하고 나의 모든 부모를 매우 빨리 확인하기위한 나의 대답을보십시오
danday74

1
이 링크도 도움이되었습니다. 내 문제는 "... 오버플로를 사용하지 않고 여전히 문제가있는 경우 부모에 키가 설정되어 있는지 확인하는 것이
좋습니다

생명의 은인, 문제에 대한 간단한 설명이지만이 문제에 대한 해결책이
Rahul Singh

32

내가 겪은 몇 가지 더 :

끈적 끈적한 요소가 구성 요소 (각도 등) 인 경우

  • 'sticky'요소 자체가 이름 <app-menu-bar>이 지정된 각도 구성 요소와 같은 사용자 정의 요소 선택기가있는 구성 요소 인 경우 구성 요소의 CSS에 다음을 추가해야합니다.

    :host { display: block; }   

    또는

    app-menu-bar  { display: block; }   // (in the containing component's css)

    iOS의 Safari는 특히 각도 응용 프로그램 display:block의 루트 요소에서도 필요 app-root하거나 보이지 않습니다.

  • 구성 요소를 만들고 구성 요소 내부에 CSS를 정의하는 경우 (그림자 DOM / 캡슐화 스타일) 내부 가 최상위 레벨이 아닌 position: sticky'외부'선택기에 적용 되는지 확인하십시오 (예 : app-menu-bardevtools에서 고정 위치를 표시해야 함) 구성 요소. Angular를 사용하면 구성 요소에 대한 CSS 의 선택기를 사용 하여이 작업을 수행 할 수 있습니다 .div :host

    :host
    {
        position: sticky;
        display: block;   // this is the same as shown above
        top: 0;
        background: red;    
    }
    

다른

  • 끈적 끈적한 요소 다음에 나오는 요소의 배경이 단색 인 경우 아래를 추가하여 아래에서 미끄러지는 것을 방지해야합니다.

    .sticky-element { z-index: 100; }
    .parent-of-sticky-element { position: relative; }
    
  • 끈적 끈적한 요소를 사용하는 경우 첫 번째 (콘텐츠 이전)로 사용해야하고를 사용 top하는 경우에는 그 뒤에 있어야합니다 bottom.

  • overflow: hidden래퍼 요소를 사용할 때 합병증이 발생 합니다. 일반적으로 내부에서 끈적 끈적한 요소가 죽습니다. 이 질문에서 더 잘 설명되었습니다.

  • 화상 키보드가 표시되면 모바일 브라우저에서 고정 / 고정 위치 항목을 비활성화 할 수 있습니다. 나는 정확한 규칙을 확신하지 못하지만 (아무도 알고 있지는 않지만) 키보드가 표시되면 창에 일종의 '창'을보고 있으며 쉽게 물건을 붙일 수 없습니다. 실제 화면 상단.

  • 당신이 가지고 있는지 확인하십시오 :

    position: sticky;

    그리고 아닙니다

    display: sticky;

기타 사용성 문제

  • 디자인에서 모바일 장치의 화면 하단에 물건이 달라 붙어야하는 경우주의하십시오. 예를 들어 iPhone X에서는 스 와이프 영역 (홈페이지로 돌아 가기)을 나타내는 좁은 선이 표시되며이 영역 내부의 요소는 클릭 할 수 없습니다. 따라서 무언가를 고수하면 iPhone X에서 사용자가 활성화 할 수 있는지 테스트해야합니다. 사람들이 클릭 할 수 없으면 큰 '지금 구매'버튼이 좋지 않습니다!
  • Facebook에 광고하는 경우 웹 페이지가 Facebook 모바일 앱의 '웹뷰'컨트롤에 표시됩니다. 특히 비디오를 표시 할 때 (화면 하단에서 내용이 시작되는 부분 만 해당)-스크롤 가능한 뷰포트 내에 페이지를 배치하여 고정 요소가 실제로 페이지 상단에서 사라지도록하여 고정 요소를 완전히 엉망으로 만듭니다. 휴대 전화의 브라우저 나 Facebook의 브라우저가 아닌 실제 광고 환경에서 모두 다르게 작동하는지 테스트해야합니다.

어느 내가 절대적으로 취소 아니에요 @Sergey display: blockposition: relativeSafari에서 트리거 올바른 동작 - 그것은 그 만 보인다 않았다 display: block필요했다? 물론 두 가지 모두를 지정하면 다 치지 않을 것입니다.
Simon_Weaver

2
그냥 display: block충분했다
세르게이

27

MarsAndBack과 Miftah Mizwar의 답변이 이어졌습니다.

그들의 대답은 맞습니다. 그러나 문제의 조상을 식별하기는 어렵습니다.

이 작업을 매우 간단하게하려면 브라우저 콘솔에서이 jQuery 스크립트를 실행하면 모든 조상에서 overflow 속성 값을 알려줍니다.

$('.your-sticky-element').parents().filter(function() {
    console.log($(this));
    console.log($(this).css('overflow'));
    return $(this).css('overflow') === 'hidden';
});

조상이 overflow: visibleCSS를 변경 하지 않아서 변경 하지 않은 경우 !

또한 다른 곳에서 언급했듯이 끈적 끈적한 요소가 CSS에서 이것을 가지고 있는지 확인하십시오.

.your-sticky-element {
    position: sticky;
    top: 0;
}

2
매우 도움이되었습니다. 값이 인 상위 요소를 빠르게 식별 할 수있었습니다 overflow: invisible.
David Brower

4
페이지에 jQuery가없는 경우 콘솔에서이 작은 스 니펫을 실행하여 추가 할 수 있습니다. (async function() { let response = await fetch('https://code.jquery.com/jquery-3.3.1.min.js'); let script = await response.text(); eval(script); })();
magikMaker

8
JQuery가 "보이지 않는"오버 플로우 상위를 찾을 필요가없는이 스 니펫을 실행할 수도 있습니다. 개발자 도구에서 마지막으로 선택된 요소var p = $0.parentElement; while(p != null) { var ov = getComputedStyle(p).overflow; if(ov !== 'visible') console.warn(ov, p); else console.log(ov, p); p = p.parentElement; }어디에 있습니까 ? $0
Mariusz Pawelski

position: fixedJavaScript를 사용 하여 적절한 속성을 처리 할 수도 있습니다. 질문에는 JavaScript가 필요하다고 명시되어 있지 않습니다.
vintproykt

12

작동하려면 다음 CSS를 사용해야했습니다.

.parent {
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
    overflow: visible;
}

.sticky {
    position: sticky;
    position: -webkit-sticky;
    top: 0;
}

위의 방법으로 작동하지 않으면 ...

모든 조상들을 살펴보고이 요소들 중 어느 것도 가지고 있지 않은지 확인하십시오 overflow: hidden. 이것을 다음으로 변경해야합니다overflow: visible


1
디스플레이 : 플렉스는 일을 만든다
MaciejLisCK

6

이 문제가 발생하고 끈적 거리지 않은 경우 부모를 다음과 같이 설정하십시오.

display: unset

나를 위해 일했다


이것은 하나입니다.
mm-93

오! 부모 요소의 높이가 제한된 경우 (예 : navbar 컨테이너 또는 전체 본문 또는 페이지 컨테이너와 달리) 컨테이너의 경우 스크롤 막대가 스크롤되지 않는 것처럼 보입니다. 부모님 (완전히 말도 안됩니다!) 이제 모두가 부모를 설정할 수있을 정도로 운이 좋으면됩니다. display: unset항상 가능한 것은 아닙니다.
Ben Philipp

또한 작업 할 것 contents, initial그리고 (?)inline
벤 필립

5

나에게 분명하지 않은 재미있는 순간 : position: stickyDevTools를 사용하여 설정 한 경우 Chrome 70 이상 이 적용되지 않습니다.


이에 대한 소스가 있거나이 문제를 해결하는 방법에 대한 기타 정보가 있습니까?
AJMansfield

5

고정 된 탐색 모음이 다른 콘텐츠가있는 div 또는 섹션 안에 있으면 안됩니다. navbar가 다른 topbar와 공유 한 div에서 navbar를 가져 오기 전까지는 해결책이 없었습니다. 이전에 topbar와 navbar가 공통 div로 래핑되었습니다.


고마워요, 제가 찾던 것이 었습니다! 나에게는 넘친 부모도 없었고 키 문제도 없었습니다. 허용 된 답변 에서이 정보를 보는 것도 좋을 것입니다.
saglamcem

방금 스티커가 부모 요소 외부로 스크롤되지 않는다는 실험을 통해 알게되었습니다. 그것이 가지고 있지만, 부모가, 분명히하는 네비게이션 바에 용기가 될 수 없지만 페이지 / 컨텐츠 용기의 TLE 수준에 뭔가로 얼마나 많은 다른 형제 그렇게 중요하지 않습니다 :(이 말도 안돼
벤 필립

그러나 Lo! 가능한 경우 제한 부모를로 설정하면 display: unset이 제한이 해제됩니다! stackoverflow.com/a/60560997/2902367 참조 또한 contents, initial(?) 및inline
Ben Philipp

4

내 의견에서 :

position:sticky 어디에 붙어야 전화로 코디가 필요

nav {
  position: sticky;
  top: 0;
}

.nav-selections {
  text-transform: uppercase;
  letter-spacing: 5px;
  font: 18px "lato", sans-serif;
  display: inline-block;
  text-decoration: none;
  color: white;
  padding: 18px;
  float: right;
  margin-left: 50px;
  transition: 1.5s;
}

.nav-selections:hover {
  transition: 1.5s;
  color: black;
}

ul {
  background-color: #B79b58;
  overflow: auto;
}

li {
  list-style-type: none;
}

body {
  height: 200vh;
}
<nav>
  <ul align="left">
    <li><a href="#/contact" class="nav-selections" style="margin-right:35px;">Contact</a></li>
    <li><a href="#/about" class="nav-selections">About</a></li>
    <li><a href="#/products" class="nav-selections">Products</a></li>
    <li><a href="#" class="nav-selections">Home</a></li>
  </ul>
</nav>

FF 및 Chrome 이외의 다른 브라우저에 사용할 polyfill이 있습니다. 이것은 브라우저를 통해 언제든지 구현할 수있는 실험적인 규칙입니다. 크롬은 몇 년 전에 그것을 추가 한 다음 떨어 뜨렸다.

가장 가까운 위치는 위치 : 상대 + 스크롤을 한 번 고정 지점에 도달하는 동안 업데이트하는 동안 업데이트합니다.이를 자바 스크립트로 바꾸려면


4

나는 이것이 이미 답변 된 것처럼 보이지만 특정 사례에 부딪 쳤으며 대부분의 답변이 요점을 놓친다고 생각합니다.

overflow:hidden답변 사례의 90 %를 커버한다. 그것은 "sticky nav"시나리오입니다.

그러나 끈적 거리는 동작은 컨테이너 높이 내에서 가장 잘 사용됩니다. 웹 사이트의 오른쪽 열에있는 페이지와 함께 스크롤되는 뉴스 레터 양식을 생각해보십시오. 고정 요소가 컨테이너의 유일한 자식 인 경우 컨테이너의 크기는 동일하며 스크롤 할 여지가 없습니다.

컨테이너는 요소가 스크롤되는 높이 여야합니다. 내 "오른쪽 열"시나리오에서 왼쪽 열의 높이는 어느 것입니까? 이를 달성하는 가장 좋은 방법 display:table-cell은 컬럼 에서 사용 하는 것입니다. 당신이 할 수없고 붙어 있고 float:right나처럼 그런 경우 Javascript로 계산할 때 왼쪽 열 높이를 추측해야합니다.


2
"끈끈한 요소가 컨테이너의 유일한 자식 인 경우 컨테이너의 크기는 동일하며 스크롤 할 여지가 없습니다." 금!!! 감사합니다!
마크 잭슨

예! 이것을 알아내는 데 시간이 걸렸습니다. 처음에는 어리석은 제한이 있었지만 적어도 그에 대한 옵션 이 있어야한다고 생각 합니다. 나는 많은 뭔가를 선호하는 것 sticky-limit: parent, sticky-limit: body또는 sticky-limit: nth-parent(3)어쨌든 ... : 당신은, 당신은에 제한 부모를 설정하여이 제한을 올릴 수 있습니다 경우 display: unset에 언급 한 바와 같이 stackoverflow.com/a/60560997/2902367 . contents, initial(?) 및inline
Ben Philipp

3

나는 이것이 오래된 게시물이라는 것을 알고 있습니다. 그러나 최근에 최근에 위치를 어지럽히 기 시작한 누군가가 있다면 끈적 거리면 이것이 유용 할 수 있습니다.

제 경우에는 position : sticky를 그리드 항목으로 사용했습니다. 작동하지 않았으며 문제는 overflow-x였습니다 html. 요소에 숨겨져 있습니다 . 해당 속성을 제거하자마자 제대로 작동했습니다. overflow-x : body요소에 숨겨져있는 것은 아직 효과가 없었습니다.


1

여기에 두 가지 대답이 있습니다.

  1. 태그 overflow에서 속성 제거body

  2. 설정 height: 100%받는 사람 body과 문제를 해결하기 위해overflow-y: auto

min-height: 100% 대신에 작동하지 않음 height: 100%


1

나는 이 기사 가 어떻게 sticky작동 하는지에 대해 많이 말합니다.

CSS Position Sticky가 실제로 작동하는 방법! CSS position sticky에는 sticky item & sticky container의 두 가지 주요 부분이 있습니다 .

Sticky Item  — 우리가 position : sticky styles로 정의한 요소입니다. 뷰포트 위치가 위치 정의와 일치하면 요소가 플로팅됩니다 (예 :) top: 0px.

고정 컨테이너 — 고정 항목을 감싸는 HTML 요소입니다. 끈적 거리는 항목이 뜰 수있는 최대 영역입니다.

position : sticky로 요소를 정의하면 부모 요소를 스티커 컨테이너로 자동 정의합니다!


1

스티커 요소의 실제 동작은 다음과 같습니다.

  • 먼저 그것은 한동안 상대적입니다
  • 그런 다음 잠시 고정됩니다
  • 마지막으로보기에서 사라집니다.

고정 위치 요소는 포함 블록이 플로우 루트 (또는 스크롤되는 컨테이너) 내에서 지정된 임계 값 (예 : 자동이 아닌 다른 값으로 설정)과 교차 할 때까지 상대적으로 배치 된 것으로 간주됩니다. 포함 블록의 반대쪽 모서리를 만날 때까지 "

요소는 문서의 일반적인 흐름에 따라 배치 된 다음 가장 가까운 스크롤 조상과 테이블 관련 요소를 포함하여 포함 된 블록 (가장 가까운 블록 레벨 조상)을 기준으로 상하, 우, 하, 그리고 왼쪽. 오프셋은 다른 요소의 위치에 영향을 미치지 않습니다.

이 값은 항상 새로운 스태킹 컨텍스트를 만듭니다. 스티커 요소는 조상이 실제로 가장 가까운 조상이 아니더라도 "스크롤 메커니즘"(오버플로가 숨겨져 있거나 스크롤되거나 자동 또는 오버레이 될 때 생성됨)이있는 가장 가까운 조상에 고정됩니다.

이 예제는 다음을 이해하는 데 도움이됩니다.

code https://codepen.io/darylljann/pen/PpjwPM


0

danday74의 수정 프로그램이 작동하지 않으면 상위 요소의 높이를 확인하십시오.

제 경우에는 두 명의 자녀가있었습니다. 하나는 떠 다니고 다른 하나는 떠 있습니다. 나는 오른쪽에 떠있는 것을 끈적 거리게하고 싶었지만 <div style="clear: both;"></div>부모의 끝에 높이 를 추가하기 위해을 추가 해야했습니다.


왜 이것이 누군가에 의해 다운 투표되었는지 확신 할 수 없지만 이것은 내 경우입니다. float:left부모 요소에 추가 하지 않고 (높이는 0이었습니다) position:sticky작동했습니다.
aexl

0

JS 솔루션을 사용했습니다. Firefox 및 Chrome에서 작동합니다. 문제가 있으면 알려주세요.

html

<body>
  <header id="header">
    <h1>Extra-Long Page Heading That Wraps</h1>
    <nav id="nav">
      <ul>
        <li><a href="" title="">Home</a></li>
        <li><a href="" title="">Page 2</a></li>
        <li><a href="" title="">Page 3</a></li>
      </ul>
    </nav>
  </header>
  <main>
    <p><!-- ridiculously long content --></p>
  </main>
  <footer>
    <p>FOOTER CONTENT</p>
  </footer>
  <script src="navbar.js" type="text/javascript"></script>
</body>

CSS

nav a {
    background: #aaa;
    font-size: 1.2rem;
    text-decoration: none;
    padding: 10px;
}

nav a:hover {
    background: #bbb;
}

nav li {
    background: #aaa;
    padding: 10px 0;

}

nav ul  {
    background: #aaa;
    list-style-type: none;
    margin: 0;
    padding: 0;

}

@media (min-width: 768px) {

    nav ul {
        display: flex;
    }
}

js

function applyNavbarSticky() {
    let header = document.querySelector('body > header:first-child')
    let navbar = document.querySelector('nav')
    header.style.position = 'sticky'

    function setTop() {
        let headerHeight = header.clientHeight
        let navbarHeight = navbar.clientHeight
        let styleTop = navbarHeight - headerHeight

        header.style.top = `${styleTop}px`
    }

    setTop()

    window.onresize = function () {
        setTop()
    }
}

0

z-index또한 매우 중요합니다. 때때로 그것은 작동하지만 당신은 그것을 보지 못할 것입니다. 확실하게하기 위해 매우 높은 숫자로 설정하십시오. 또한 top: 0(도구 모음 아래) 어딘가에 숨겨져있는 경우를 대비하여 항상 더 높이 올려 놓지 마십시오 .


0

여기 저를 트립하고있는 것이 있습니다 ... 내 끈적 끈적한 div가 다른 div 안에 있었기 때문에 부모 div는 끈적 끈적한 div 뒤에 추가 내용이 필요했습니다. 아래로 스크롤합니다.

따라서 내 경우에는 고정 div 직후에 다음을 추가해야했습니다.

    %div{style:"height:600px;"} 
      &nbsp;

(응용 프로그램에는 왼쪽에 "높은"이미지가 있고 오른쪽에 짧은 데이터 입력 양식이있는 두 개의 나란한 div가 있으며 아래로 스크롤 할 때 이미지 옆에 데이터 입력 양식이 플로팅되기를 원했습니다. 위의 "추가 콘텐츠"를 추가하기 전에는 양식이 항상 화면에 표시됩니다.


-1

그것은 사실입니다 overflow요구 사항을 제거하거나 설정할 수 initial있도록 position: sticky자식 요소에 작품. Angular 앱에서 머티리얼 디자인을 사용하고 일부 머티리얼 컴포넌트가 overflow값을 변경 한 것을 발견했습니다 . 내 시나리오의 수정은

mat-sidenav-container, mat-sidenav-content {
  overflow: initial;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.