Свойство CSS `overflow-anchor`
Baseline Ограниченная доступность
Эта функция не входит в Baseline, поскольку не работает в некоторых наиболее широко используемых браузерах.
Свойство overflow-anchor CSS позволяет отключить поведение браузера по привязке прокрутки, которое корректирует положение прокрутки, чтобы свести к минимуму смещения содержимого.
Поведение привязки прокрутки по умолчанию включено во всех браузерах, которые его поддерживают. Поэтому изменять значение этого свойства обычно нужно только в том случае, если привязка прокрутки вызывает проблемы в документе или его части и необходимо отключить это поведение.
Попробуйте
overflow-anchor: auto;
overflow-anchor: none;
<section class="default-example" id="default-example">
<div class="whole-content-wrapper">
<button id="playback" type="button">Start lottery</button>
<p>Magic numbers for today are:</p>
<div id="example-element"></div>
</div>
</section>
.whole-content-wrapper {
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
}
#example-element {
height: 100%;
border: 2px dashed dodgerblue;
padding: 0.75em;
text-align: left;
overflow: scroll;
}
#playback {
font-size: 1em;
width: 10em;
height: 4em;
font-weight: bold;
margin: 1em auto;
background-color: aliceblue;
border: solid 2px dodgerblue;
border-radius: 5px;
}
#playback:hover {
border-color: lightseagreen;
}
#playback:active {
filter: brightness(0.9);
}
const example = document.getElementById("example-element");
const button = document.getElementById("playback");
let intervalId;
function setInitialState() {
example.innerHTML = "";
Array.from({ length: 10 }, (_, i) => i).forEach(addContent);
example.scrollTop = example.scrollHeight;
}
function addContent() {
console.log("adding content");
const magicNumber = Math.floor(Math.random() * 10000);
example.insertAdjacentHTML(
"afterbegin",
`<div class="new-content-container">New Magic Number: ${magicNumber}</div>`,
);
}
button.addEventListener("click", () => {
if (example.classList.contains("running")) {
example.classList.remove("running");
button.textContent = "Start lottery";
clearInterval(intervalId);
} else {
example.classList.add("running");
button.textContent = "Stop lottery";
setInitialState();
intervalId = setInterval(addContent, 1000);
}
});
Синтаксис
/* Keyword values */ overflow-anchor: auto; overflow-anchor: none; /* Global values */ overflow-anchor: inherit; overflow-anchor: initial; overflow-anchor: revert; overflow-anchor: revert-layer; overflow-anchor: unset;
Значения
Это свойство задаётся одним из следующих ключевых слов:
-
auto - Элемент становится потенциальной точкой привязки при корректировке положения прокрутки.
-
none - Элемент не будет выбран в качестве потенциальной точки привязки.
Формальное определение
| Исходное значение | auto |
|---|---|
| Применяется к | всем элементам |
| Наследуется | нет |
| Вычисленное значение | как задано |
| Тип анимации | дискретный |
Формальный синтаксис
overflow-anchor =
auto |
none
Примеры
Отключение привязки прокрутки
Чтобы отключить привязку прокрутки в документе, используйте свойство overflow-anchor.
* {
overflow-anchor: none;
}
Спецификации
Совместимость с браузерами
| Компьютерные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | |
overflow-anchor |
56 |
79 |
66 |
43 |
27 |
56 |
66 |
43 |
27 |
6.0 |
56 |
27 |
auto |
56 |
79 |
66 |
43 |
27 |
56 |
66 |
43 |
27 |
6.0 |
56 |
27 |
none |
56 |
79 |
66 |
43 |
27 |
56 |
66 |
43 |
27 |
6.0 |
56 |
27 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/overflow-anchor