Spec-Zone.ru › CSS

Свойство 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;
}

Спецификации

Спецификация
Модуль привязки прокрутки CSS, уровень 1
# exclusion-api

Совместимость с браузерами

Компьютерные Мобильные
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

См. также

  • Обзор привязки прокрутки
  • Модуль привязки прокрутки CSS

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API