TGViewer
WebDev+ | Веб-разработка WebDev+ | Веб-разработка @webdev_plus · 7.9K subscribers
Post #1308 994
Замечали, как вся страница сдвигается, когда вы открываете модальное окно?

Это не баг — это просто отсутствующее CSS-свойство.

Вот что происходит:

Вы открываете модалку.

Затем обычно отключаете прокрутку, добавляя overflow: hidden к тегу body.

Прокрутка отключается, и скроллбар исчезает.

И тут — бум — страница сдвигается, например, на 15px влево, потому что контент расширяется и занимает место, где раньше был скроллбар.

В результате получается layout shift.

Чтобы это исправить, можно использовать scrollbar-gutter: stable.

Что делает это свойство:

Оно резервирует место под скроллбар, даже когда он не отображается. Когда открывается модалка и скроллбар исчезает, пространство под него остаётся зарезервированным, поэтому никакого сдвига layout не происходит.

Как это использовать 👇

body {
overflow-y: scroll;
scrollbar-gutter: stable;
}


Теперь, когда вы открываете модальное окно:

* скроллбар исчезает
* зарезервированное пространство остаётся
* layout остаётся стабильным

Важное замечание (!)

В MacOS вы можете не заметить этот эффект, пока явно не включите настройку “всегда показывать скроллбар”. По крайней мере, я заметил разницу только после этого.

Предполагаю, что для пользователей Windows/Linux это происходит чаще, чем для пользователей MacOS, но я не проверял, как это работает там.

Поддержка браузерами: ~93%

Одна строка CSS — и ваши модальные окна больше не выглядят сломанными.

@WebDev_Plus
More from @webdev_plus
  1. Oct 7, 2026Разработчики Next.js: добавьте эти 4 строки в ваш .vscode/settings.json, чтобы сразу прока…
  2. Oct 7, 2026Полезное расширение для Chrome «Responsive Viewer» Помогает веб-разработчикам и дизайнерам…
  3. Oct 6, 2026Laravel / PHP: как предпочитаете отправлять письма — описывать их прямо в месте вызова или…
  4. Oct 6, 2026Этот HTML-косяк непростителен. Не использовать атрибут inputmode в элементах input — серьё…
  5. Oct 5, 2026Работает!? Не трогай 🎯
  6. Oct 5, 2026Фронтендер психанул и написал крестики-нолики без HTML и JavaScript Вся игра работает прак…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →