Почему скролл «пробивает» модалку и уводит страницу вниз?
Это типичный UX-баг: вы листаете контент внутри
Часто это пытаются чинить через
У CSS для этого есть нативное решение:
Так скролл остаётся внутри контейнера и не передаётся родителю. А если нужно полностью отключить цепочку прокрутки и overscroll-эффекты, используйте
Особенно полезно для modal, drawer, sidebar, чатов и мобильных меню.
#css #frontend #ux
Это типичный UX-баг: вы листаете контент внутри
modal или sidebar, доходите до края — и дальше начинает двигаться уже вся страница.Часто это пытаются чинить через
body { overflow: hidden; }, но такой подход нередко ломает поведение на iOS, мешает sticky-элементам и даёт неприятные скачки интерфейса.У CSS для этого есть нативное решение:
.modal {
overflow: auto;
overscroll-behavior: contain;
}Так скролл остаётся внутри контейнера и не передаётся родителю. А если нужно полностью отключить цепочку прокрутки и overscroll-эффекты, используйте
overscroll-behavior: none;.Особенно полезно для modal, drawer, sidebar, чатов и мобильных меню.
#css #frontend #ux
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Как сделать fluid sizing аккуратнее с помощью
В свежем разборе показали, как CSS-функция
Смысл в том, что вместо дробных и не всегда удобных значений можно получать более предсказуемый результат с нужным шагом округления. В итоге вёрстка выглядит чище, а поведение размеров становится стабильнее и понятнее.
Хороший приём для тех, кто хочет сделать адаптивную типографику и spacing более контролируемыми.
#CSS #frontend #typography
round()В свежем разборе показали, как CSS-функция
round() помогает «причесать» значения, которые вычисляются через clamp(). Это особенно полезно для адаптивных размеров: шрифтов, отступов, блоков и других элементов интерфейса.Смысл в том, что вместо дробных и не всегда удобных значений можно получать более предсказуемый результат с нужным шагом округления. В итоге вёрстка выглядит чище, а поведение размеров становится стабильнее и понятнее.
Хороший приём для тех, кто хочет сделать адаптивную типографику и spacing более контролируемыми.
#CSS #frontend #typography
Адаптивные изображения в HTML
Тег
Браузер проверяет теги
Если
#HTML #адаптивность #frontend
Тег
<picture> нужен, когда для разных устройств или сценариев показа требуется подставлять разные версии одной картинки.<picture> <source srcset="320.jpg" media="(max-width: 800px)"> <img src="640.jpg" alt="..."></picture>Браузер проверяет теги
<source> сверху вниз и берёт первый вариант, который подходит под текущие условия. Остальные после этого уже не рассматриваются.Если
<picture> не поддерживается или ни один <source> не сработал, будет показано изображение из тега <img>.#HTML #адаптивность #frontend
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Полезный open-source инструмент для UI: веб-компонент, который сам собирает skeleton-заглушки с shimmer-эффектом прямо на основе реального интерфейса.
Что удобно:
— не приходится вручную делать отдельные skeleton-компоненты
— лоадер строится по фактической структуре DOM
— можно гибко настраивать shimmer и внешний вид
— подходит для React, Vue, Svelte и других фреймворков
Хороший вариант, если хочется быстрее навести порядок в состоянии загрузки и не тратить время на дублирование разметки.
#frontend #ui #opensource
Что удобно:
— не приходится вручную делать отдельные skeleton-компоненты
— лоадер строится по фактической структуре DOM
— можно гибко настраивать shimmer и внешний вид
— подходит для React, Vue, Svelte и других фреймворков
Хороший вариант, если хочется быстрее навести порядок в состоянии загрузки и не тратить время на дублирование разметки.
#frontend #ui #opensource
Как сделать
Частая ошибка — ставить футер через
Проще и надёжнее решить это на flex:
Дальше достаточно для
#css #flexbox #frontend
sticky footer без layout-багов?Частая ошибка — ставить футер через
position: fixed; bottom: 0;. На практике он нередко перекрывает контент и особенно неприятно ведёт себя на мобильных.Проще и надёжнее решить это на flex:
body {
display: flex;
flex-direction: column;
min-height: 100dvh;
}Дальше достаточно для
footer задать margin-top: auto; — и он сам уйдёт к нижней границе страницы, забрав всё свободное место сверху. Такой подход не требует JS и лишних расчётов. Как и в уходе, где важна база, а не маскировка симптомов — кстати, похожий подход часто разбирают в канале про кожу, уход и косметологию.#css #flexbox #frontend