Как сказал @alex, поле прокрутки - это поле, в котором значение переполнения установлено на значение, отличное от visible
(значение по умолчанию).Я не могу подтвердить, но я пришел к выводу, основываясь на этом предыдущем ответе , где переполнение создает некоторые проблемы с липким элементом.
Как я объяснил там, если у вас есть элемент с overflow:hidden
в качествепредок position:sticky
, этот перестанет работать, потому что его смещение будет рассчитываться на основе этого поля (с overflow:hidden
), потому что это ближайший предок с ползунком прокрутки .Так как мы использовали hidden
, мы не можем прокручивать это поле, поэтому мы не можем видеть липкое поведение.
Вот базовый пример:
.wrapper {
height:200vh;
border:2px solid;
}
.wrapper >div {
position:sticky;
top:0;
height:20px;
background:red;
}
<div class="wrapper">
<div></div>
</div>
В приведенном ниже примере область просмотра будет использоваться для ссылки, поскольку у нас нет поля прокрутки.Теперь давайте добавим переполнение в оболочку:
.wrapper {
height:200vh;
border:2px solid;
overflow:scroll;
}
.wrapper >div {
position:sticky;
top:0;
height:20px;
background:red;
}
<div class="wrapper">
<div></div>
</div>
Теперь наш липкий элемент будет рассматривать обертку для ссылки, но, поскольку у нас нет переполнения, у нас не будет прокрутки, поэтому нетспособ вызвать липкое поведение.Кроме того, прокрутка области просмотра ничего не даст.
Если вы добавите переполнение, добавив еще один элемент внутрь, мы можем запустить липкое поведение:
.wrapper {
height:200vh;
border:2px solid;
overflow:scroll;
position:relative;
}
.wrapper >div {
position:sticky;
top:0;
height:20px;
background:red;
}
.wrapper > span {
position:absolute;
top:100%;
height:50px;
left:0;
right:0;
background:blue;
}
<div class="wrapper">
<div></div>
<span></span>
</div>
Мы можем ясно видеть, как прокрутка оболочки контролирует липкий элемент, а прокрутка окна просмотра ничего не делает, поэтому мы можем заключить, что наша оболочка ближайший предок с ползунком прокрутки
Учитывая последнюю проблему в спецификации, мы также можем прочитать, что:
Липкое позиционирование действительно должно бытьопределяется в терминах ближайшего прокручиваемого предка , но в настоящее время такого термина в CSS нет.CSSOM View относится к «полям прокрутки».
Так что, вероятно, прокручиваемый предок такой же, как предок с полем прокрутки .