Всем привет!
Суть такая:
Eсть SPA (React), на некоторых страницах достаточно контента и scrollbar есть сам по себе, а на некоторых его недостаточно и scrollbar'a нет. При переходе между страницами с/без scrollbar набрлюдается небольшой горизонтальный скачок контента.
Вопрос:
Какие есть сложившиеся практики устранения данного горизонтального скачка контента страницы?
Цель вопроса:
Сформировать список решений данной проблемы.
P.S. Об этих вариантах решения проблемы я уже знаю:
- отображать scrollbar на всех страницах, вне зависимости от высоты контента;
- добавить больше контента на страницы, чтобы scrollbar добавил сам браузер;
- отказаться от стандартного scrollbar'a в пользу кастомного, который не занимает места (аля macos, мобилки);
- CSS хак (подходит не под все дизайны)
P.S.S. Есть идея как решить проблему сложно:
- Определяем ширину scrollbar'a в браузере пользователя (в разных браузерах он разный, но +/- 3 px)
- Будем добавлять класс scrollbar-X к html (где X - ширина в px из шага 1), только в случае если контент помещается во viewport браузера (scrollbar не появится) и убирать класс scrollbar-X если он не помещается (scrollbar появится)
- тогда с помощью иерархических запросов в css можно будет задать padding'и для тегов исходя из конкретной ширины scrollbar'a в браузере пользователя
Но хочется верить, что есть вариант проще ...