Spec-Zone.ru › CSS

CSS-свойство `scroll-initial-target`

Baseline Ограниченная доступность

Эта функция не входит в Baseline, поскольку не работает в некоторых наиболее популярных браузерах.

Экспериментальная функция: Это экспериментальная технология
Перед использованием в рабочей среде внимательно ознакомьтесь с таблицей совместимости с браузерами.

Экспериментальная функция: Это экспериментальная технология
Перед использованием в рабочей среде внимательно ознакомьтесь с таблицей совместимости с браузерами.

Свойство scroll-initial-target CSS позволяет задавать элементы, которые могут стать целями привязки при первой отрисовке их родительского контейнера прокрутки.

Синтаксис

/* Keyword values */
scroll-initial-target: none;
scroll-initial-target: nearest;

/* Global values */
scroll-initial-target: inherit;
scroll-initial-target: initial;
scroll-initial-target: revert;
scroll-initial-target: revert-layer;
scroll-initial-target: unset;

Значения

Для этого свойства указывается одно из следующих ключевых слов:

none
Элемент не является начальной целью прокрутки.
nearest
Элемент потенциально является начальной целью прокрутки для ближайшего родительского контейнера прокрутки.

Описание

Свойство scroll-initial-target позволяет задавать элементы, к которым следует привязать прокрутку при первой отрисовке родительских контейнеров привязки прокрутки. Установка значения nearest задаёт элемент как потенциальную цель, к которой следует привязать прокрутку, когда ближайший родительский контейнер прокрутки впервые появляется на странице.

Если для нескольких элементов или псевдоэлементов в контейнере прокрутки задано значение nearest, начальной целью привязки прокрутки становится первый элемент в порядке дерева.

Начальное значение — none, то есть элемент, к которому можно привязать прокрутку, по умолчанию не является начальной целью прокрутки. Значение none также можно задать элементу, чтобы явно указать, что он не является начальной целью прокрутки.

Если начальная позиция прокрутки контейнера может задаваться как свойством распределения содержимого place-content, так и свойством scroll-initial-target у любого из его потомков, побеждает первый потомок со значением scroll-initial-target: nearest.

Формальное определение

Начальное значение none
Применяется к всем элементам
Наследуется нет
Вычисленное значение указанное ключевое слово
Тип анимации Не анимируется

Формальный синтаксис

scroll-initial-target = 
  none |
  nearest

Примеры

Использование scroll-initial-target

В примере ниже показаны два значения scroll-initial-target и то, как выполняется привязка к первому элементу со значением scroll-initial-target.

HTML

Мы добавляем 5 контейнеров, перед которыми размещаем абзац с описанием ожидаемого эффекта.

<p><code>none</code> on #4 only</p>
<div class="none">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div class="set">4</div>
  <div>5</div>
</div>

<p><code>nearest</code> on #4 only</p>
<div class="nearest">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div class="set">4</div>
  <div>5</div>
</div>

<p><code>nearest</code> on even elements</p>
<div class="nearest">
  <div>1</div>
  <div class="set">2</div>
  <div>3</div>
  <div class="set">4</div>
  <div>5</div>
</div>

<p><code>nearest</code> on odd elements</p>
<div class="nearest">
  <div class="set">1</div>
  <div>2</div>
  <div class="set">3</div>
  <div>4</div>
  <div class="set">5</div>
</div>

<p><code>nearest</code> on odd elements, with <code>none</code> on #1</p>
<div class="nearest">
  <div class="set unset">1</div>
  <div>2</div>
  <div class="set">3</div>
  <div>4</div>
  <div class="set">5</div>
</div>

CSS

Мы задаём для элементов со значениями nearest и none поведение контейнеров привязки прокрутки и центрируем элементы, к которым выполняется привязка.

/* mandatory scroll-snap on parent */
div.nearest,
div.none {
  scroll-snap-type: x mandatory;
}

/* scroll-snap alignment for children */
div > div {
  scroll-snap-align: center;
  scroll-initial-target: always;
}

Затем мы задаём scroll-initial-target со значением none или nearest для всех элементов с классом .set.

.none .set,
.nearest .set.unset {
  scroll-initial-target: none;
}
.nearest .set {
  scroll-initial-target: nearest;
}
/* setup */
body {
  height: 100%;
  display: flex;
  align-items: center;
  flex-flow: column nowrap;
  font-family: sans-serif;
  text-align: center;
}

div.nearest,
div.none {
  display: flex;
  overflow: auto;
  font-size: 3rem;
}

div div {
  width: 90%;
  min-width: 15rem;
  flex: none;
  outline: 1px solid #333333;
}

/* coloration */
div > div:nth-child(even) {
  background-color: #87ea87;
}

div > div:nth-child(odd) {
  background-color: #87ccea;
}

p {
  margin: 1em 0 0;
}

@supports not (scroll-initial-target: nearest) {
  :root::before {
    content: "Your browser doesn't support the scroll-initial-target property.";
    background-color: wheat;
    display: block;
    text-align: center;
    padding: 1rem 0;
  }
}

Результат

Эффект этого свойства демонстрируется при отображении контейнера привязки прокрутки на странице.

В каждой строке выполняется привязка к первому элементу со значением nearest, если такой есть, в порядке дерева. В последнем примере мы переопределили значение nearest для первого элемента с помощью none, поэтому первым элементом, для которого задано nearest, становится #3.

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

Спецификация
Модуль CSS Scroll Snap, уровень 2
# propdef-scroll-initial-target

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

Настольные устройства Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari для iOS Samsung Internet WebView Android WebView для iOS
scroll-initial-target
133
133
Нет
118
Нет
133
Нет
88
Нет
29.0
133
Нет
nearest
133
133
Нет
118
Нет
133
Нет
88
Нет
29.0
133
Нет
none
133
133
Нет
118
Нет
133
Нет
88
Нет
29.0
133
Нет

См. также

  • Привязка прокрутки 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/scroll-initial-target

Spec-Zone.ru

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