CSS-свойствоВ стандарте

CSS scroll-snap-type — синтаксис и примеры

CSS-свойство scroll-snap-type: назначение, рабочее значение, влияние на раскладку или отрисовку, ошибки и поддержка браузерами.

Назначение и границы

Назначение «scroll-snap-type» раскрывается через задачу «управлять доступом к содержимому, которое выходит за границы контейнера». Свойство scroll-snap-type относится к области «прокрутка и переполнение» и создаёт или настраивает область прокрутки и влияет на sticky-позиционирование потомков. Для воспроизводимой проверки «scroll-snap-type» используйте пример в интерфейсе, которым управляют только клавиатурой и наблюдайте состояние при пустом содержимом.

Практическое правило для scroll-snap-type

Для «scroll-snap-type» сначала проверьте вычисленное значение scroll-snap-type, наследование и контекст родителя. После этого сравните исходное и изменённое состояние «scroll-snap-type» на одном и том же содержимом.

Синтаксис scroll-snap-type

Синтаксис «scroll-snap-type» показан на минимальном фрагменте без внешнего фреймворка. Сначала запустите исходный вариант, затем меняйте отмеченную часть.

css
.demo {
  scroll-snap-type: smooth;
}
Открыть в Playground

Как работает scroll-snap-type

Браузер обрабатывает «scroll-snap-type» в контексте области «прокрутка и переполнение»: свойство scroll-snap-type относится к области «прокрутка и переполнение» и создаёт или настраивает область прокрутки и влияет на sticky-позиционирование потомков. Для «scroll-snap-type» наблюдения через состояние при пустом содержимом и отображение в режиме печати отделяют исходное условие от результата.

Проверка в проекте

  • Проверьте вычисленное значение scroll-snap-type, наследование и контекст родителя; результат относится непосредственно к «scroll-snap-type».
  • Сравнить результат с отключёнными стилями и сохранить логичный порядок содержимого при разборе «scroll-snap-type».
  • Проверьте «scroll-snap-type» в интерфейсе, которым управляют только клавиатурой через состояние при пустом содержимом и запишите наблюдаемое изменение.
Выбор конструкции

Оставляйте «scroll-snap-type» в решении только после проверки в интерфейсе, которым управляют только клавиатурой. Если нативная конструкция решает задачу «scroll-snap-type» с меньшим числом условий, используйте её.

Практика с scroll-snap-type

Перенесите «scroll-snap-type» в тестовом шаблоне и испытайте его в интерфейсе, которым управляют только клавиатурой. Сначала воспроизведите правильный результат, затем намеренно добавьте риск для «scroll-snap-type»: изолированная декларация scroll-snap-type без связанных ограничений может дать другой результат в реальном компоненте.

прокрутка и переполнениеscroll-snap-type

Сценарий: в интерфейсе, которым управляют только клавиатурой.

Ошибки при работе с scroll-snap-type

01

Контекст

Изолированная декларация scroll-snap-type без связанных ограничений может дать другой результат в реальном компоненте — это предметный риск для «scroll-snap-type».

02

Устойчивость

Отсутствие запасного поведения при неподдерживаемой возможности при использовании «scroll-snap-type».

03

Доступность

Непредсказуемое наследование значения из внешнего компонента; для «scroll-snap-type» проверьте это отдельно.

Поддержка scroll-snap-type

Для «scroll-snap-type» таблица собрана из закреплённой версии MDN Browser Compatibility Data. Указанная версия браузера показывает первое заявленное появление базовой поддержки «scroll-snap-type»; окончательное решение принимайте по аудитории конкретного проекта.

Chromeс версии 69Edgeс версии 79Firefoxс версии 99Safariс версии 11

Спецификация: источник 1.

Вопросы о scroll-snap-type

Как понять, что «scroll-snap-type» выбрано правильно?

«scroll-snap-type» выбрано правильно, когда оно решает задачу «управлять доступом к содержимому, которое выходит за границы контейнера», сохраняет результат в интерфейсе, которым управляют только клавиатурой и проходит предметную проверку: проверьте вычисленное значение scroll-snap-type, наследование и контекст родителя.

Нужен ли запасной вариант для «scroll-snap-type»?

Запасной вариант для «scroll-snap-type» нужен, если целевой браузер или режим не обеспечивает выбранное поведение. Без улучшения «scroll-snap-type» должно сохранять смысл, содержимое и основное действие.

Спецификации и источники

Синтаксис и статус проверяются по HTML Living Standard, спецификациям CSS и MDN Browser Compatibility Data. Примеры и объяснения подготовлены для этого сервиса.