CSS Фикс скачка ширины страницы при открытой модалке - свойство scrollbar-gutter

  Рет қаралды 45,438

Александр Ламков — Friendly Frontend

Александр Ламков — Friendly Frontend

27 күн бұрын

🗂️ Смотри бесплатные курсы по фронтенд-разработке на канале:
🟠 Курс по HTML
🔵 Курс по CSS
🟡 Курс по JS
🟢 Курс Accessibility
⚪️ Мастер-класс по верстке для новичков
🔘 Мастер-класс по верстке для продвинутых (БЭМ, SCSS)
💬 Чат в телеграмме (помощь новичкам):
@friendlyFrontendChat
#shorts #frontend #фронтенд #css

Пікірлер: 110
@AleksanderLamkov
@AleksanderLamkov 25 күн бұрын
📌 Друзья, в телеграмме у нас есть канал и отдельный чат, где вы можете задать вопрос по фронтенд-разработке и вам постараются помочь: 💬 Чат: @friendlyFrontendChat ℹ Основной канал: @friendlyFrontend Если вам это интересно, присоединяйтесь, задавайте вопросы и помогайте другим 🙂
@user-dy7fj6xn3q
@user-dy7fj6xn3q 7 күн бұрын
Полезная инфа, попробую на проекте, спасибо))
@alikhanzakonov5575
@alikhanzakonov5575 25 күн бұрын
Жаль только область скролбара не затемняется вместе с остальными элементами
@dowellkin
@dowellkin 7 күн бұрын
Полагаю бэкдропу можно задать right: -20px
@CaiN805
@CaiN805 20 күн бұрын
Прекрасно! Думал это невозможно исправить! Ладно в мозилле или сафари, но в хроме километровая ширина прокрутки😂 спасибо большое, очень помог!
@Sashad2003
@Sashad2003 20 күн бұрын
Спасибо за полезную инфу!
@placid3495
@placid3495 25 күн бұрын
С каждым новым твоим шортсом все больше полезного узнаю! Спасибо!
@virtuoz-ru
@virtuoz-ru 25 күн бұрын
Знал об этом, но не знал как применять 😂. Спасибо, теперь знаю 👍
@Virisound
@Virisound 24 күн бұрын
Круто, норм инфа. 👍
@yelstofs6117
@yelstofs6117 23 күн бұрын
Спасибо!
@kalts_daniil
@kalts_daniil 25 күн бұрын
Я всю жизнь с этим страдал, а тут одно свойство оказывается 😂 Я когда использовал выпадающее меню для мобильных устройств, ставил для body: overflow-y: hidden. Но если на компьютере сузить экран, то там скакала ширина, потому что это не touch устройство. Спасибо!)
@user-ej6je7en1k
@user-ej6je7en1k 19 күн бұрын
Эт оч полезно. Подписался.
@user-ox4si9xx2x
@user-ox4si9xx2x 20 күн бұрын
Спасибо ❤
@marhunter1698
@marhunter1698 20 күн бұрын
Всегда знал что где то было это свойство
@ivan4486
@ivan4486 14 күн бұрын
Ну тоже не панацея - оно вставляет заглушку вместо скролбара, не совпадающую по цвету с сайтом. Смотрится на мой взгляд даже хуже чем сдвиг разметки.
@AleksanderLamkov
@AleksanderLamkov 14 күн бұрын
Где-то в комментариях ниже оставлял ссылку на кодпен, где этой проблемы нет. Нужна лишь доп. обертка для контента.
@mvcxnm
@mvcxnm 18 күн бұрын
а в чем проблема сделать оверлей отдельным блоком, который будет перекрывать весь контент страницы? Тогда, даже не прописывая overflow hidden, страница не будет реагировать на скролл
@AleksanderLamkov
@AleksanderLamkov 18 күн бұрын
Набросай код в песочнице и скинь сюда или в чат t.me/friendlyFrontend, пожалуйста. Пока не совсем понятна твоя идея.
@vehiclesport662
@vehiclesport662 25 күн бұрын
Спасибо, огромный опыт...)
@DraginAnatoliy
@DraginAnatoliy 25 күн бұрын
Боже мой, дождались, спасибо... если бы не ты я бы до сих пор мучался с этим
@user-xy9zd1bt1i
@user-xy9zd1bt1i 23 күн бұрын
на css наверно всю вселенную скоро опишут
@qurnosov_live
@qurnosov_live 21 күн бұрын
Пойду bootstrap установлю и не буду изобретать велосипед. А вам ещё поведение на ESC надо наладить, поведение при клике за пределами окна, клик по крестику, клик по кнопке отмена. Ну и адаптивность неплохо сделать
@Barahten2010
@Barahten2010 11 күн бұрын
Эта фишка работает когда страница имеет свою собственную прокрутку. В случае когда все умещается в пределах одного экрана, т.е. не имеет прокрутки, то будет некрасивый желоб, который как бы зарезервирован этим css правилом
@AleksanderLamkov
@AleksanderLamkov 11 күн бұрын
Да, но лечится такой схемой: codepen.io/aleksander-lamkov/pen/rNbEemq
@radislaw
@radislaw 4 күн бұрын
@@AleksanderLamkov а нафига тогда это свойство, если все равно тот же костыль нужно применять?
@AleksanderLamkov
@AleksanderLamkov 4 күн бұрын
Без scrollbar-gutter скроллбар при открытии модалки будет некрасиво смещаться.
@radislaw
@radislaw 4 күн бұрын
@@AleksanderLamkov Попробуйте закомментировать это свойство в вашем codepen
@AleksanderLamkov
@AleksanderLamkov 4 күн бұрын
Окей, действительно, ничего не меняется. В таком случае либо делать доп. обёртку над контентом, как в кодпене выше, либо scrollbar-gutter вешать на html {} и терпеть вертикальную незатемненную линию вместо скроллбара при открытии модалки.
@tymurkr
@tymurkr 24 күн бұрын
По моему легче вообще убрать скролбар, или попытаться сделать как на смартфонах, потому что все равно белая полоска все портит.
@user-yo2yg5zx9e
@user-yo2yg5zx9e 14 күн бұрын
Было дело, юзал костыли😢
@kalts_daniil
@kalts_daniil 24 күн бұрын
Саша, а ты добавишь этот стиль в свою сборку normalize.css?
@AleksanderLamkov
@AleksanderLamkov 24 күн бұрын
Думаю да, хорошая идея, спасибо!
@VitaliyHAN
@VitaliyHAN 22 күн бұрын
Произносится как «гаттер»
@user-oi1ui9rm7x
@user-oi1ui9rm7x 25 күн бұрын
Спасибо, классная штука. Только fixed - хедер все-таки дергается.
@kyleundefine1867
@kyleundefine1867 24 күн бұрын
а там надо вюпорт задавать по ширине на не 100% и с компенсацией падинга как диз попросит....
@arthur_adams
@arthur_adams 20 күн бұрын
Гюнтер и пудинг))
@nepcz
@nepcz 25 күн бұрын
Не знаю как вам, но когда я зашел на caniuse прокрутив в голове слова "можно использовать в продакшен" и увидев поддержку браузеров, мне сразу вспомнился мем, где чел сидит за столом с тарелкой и всё выплевывает изо рта с афигевшим взглядом.
@AleksanderLamkov
@AleksanderLamkov 25 күн бұрын
Привет! Поддержка "плохая" из-за Safari, но есть нюанс. Его в расчёт не нужно брать. Ни на iOS, ни на MacOS скроллбара как такового нет и, соответственно, проблемы "прыгающего" скроллбара там нет. Так что смело повторю свои слова: да, можно использовать в продакшене.
@NeGovoriNet
@NeGovoriNet 24 күн бұрын
ВОт только на месте скролбара белое поле. Так что пока не идеально
@AleksanderLamkov
@AleksanderLamkov 20 күн бұрын
Нашел решение. Нужна лишь дополнительная обертка :) См.: codepen.io/aleksander-lamkov/pen/rNbEemq
@miv2179
@miv2179 24 күн бұрын
Учу htm, jsl и css и у меня почему-то не работает overflow: hidden; при открытии модального окна. Не подскажешь в чём может быть проблема?
@AleksanderLamkov
@AleksanderLamkov 24 күн бұрын
Привет! Может не на тот элемент вешаешь свойство? Попробуй на и одновременно.
@miv2179
@miv2179 21 күн бұрын
@@AleksanderLamkov спасибо все заработала. Не в тот элемент ставил overflow
@un_defined
@un_defined 21 күн бұрын
супадупа
@danilka6295
@danilka6295 18 күн бұрын
77% - плохая поддержка для продакшена, максимум для каких-то мелких проектов
@AleksanderLamkov
@AleksanderLamkov 18 күн бұрын
Поддержка лучше, чем кажется. Safari можно не учитывать вовсе, там скроллбара типичного нет.
@yatush3093
@yatush3093 23 күн бұрын
Даже ютуб не просёк
@user-ws2fq7qp2m
@user-ws2fq7qp2m 19 күн бұрын
можно и задать контейнеру width = 100vw)
@AleksanderLamkov
@AleksanderLamkov 19 күн бұрын
Увы, это не спасёт от "скачка" :(
@jekaagramakov3920
@jekaagramakov3920 20 күн бұрын
у вас есть обучалки по Реакт?)
@AleksanderLamkov
@AleksanderLamkov 20 күн бұрын
Привет! Пока нет. Последний курс на канале про JS и он всё ещё в процессе.
@dimenuendo
@dimenuendo 15 күн бұрын
есть способ лучше: scrollbar-width: none; ВСЁ {нетСкроллбара === нетПроблемы}
@bubblesort6368
@bubblesort6368 25 күн бұрын
Но все равно ведь справа пустое место под от скрол бара остается. Тоже смотрится спорно. Не знаю что лучше) скрол или яма)
@AleksanderLamkov
@AleksanderLamkov 25 күн бұрын
Если страница с изначально темным фоном, то это не будет сильно бросаться в глаза.
@bubblesort6368
@bubblesort6368 25 күн бұрын
@@AleksanderLamkov возможно, но большинство сайтов имеют белый фон и например в области хедера яма все равно будет видна(
@AleksanderLamkov
@AleksanderLamkov 25 күн бұрын
Эх. Как обычно во фронтенд-разработке - «серебряной пули» не существует, довольствуемся чем имеем и допиливаем всё костылями 🥲
@user-uc6bu5bf3j
@user-uc6bu5bf3j 24 күн бұрын
Нет проблема не решилась, теперь там просто пустое пространство, визуально выглядит как сломанное поведение а поддержка браузеров в 76 процентов делает как минимум не используемым в настоящее время)
@AleksanderLamkov
@AleksanderLamkov 24 күн бұрын
Пустое пространство - это цвет body, бросается в глаза только, если страница в изначально светлых тонах, что контрастирует с бэкдропом. Поддержка на самом деле неплохая, ибо сафари в расчет можно не брать, там проблемы скроллбаров нет.
@CoderWho-qh8fv
@CoderWho-qh8fv 23 күн бұрын
гютер - это по-немецки? 😂
@user-gz3wu1on9z
@user-gz3wu1on9z 25 күн бұрын
Увы, проблема не решена. На фиксированных элементах не работает
@AleksanderLamkov
@AleksanderLamkov 25 күн бұрын
Можешь развернуть свой тезис? На каких таких элементах? Базовый сценарий с манипуляцией скроллбара для всей страницы при открытии модалки работает отлично.
@user-gz3wu1on9z
@user-gz3wu1on9z 25 күн бұрын
@@AleksanderLamkov Фиксируешь шапку при спролле. Фиксируешь, например, проявляемую кнопку вверх при скролле. Все они, при открытии модалки, так же смещаются на размер скроллбара.
@AleksanderLamkov
@AleksanderLamkov 25 күн бұрын
Проверил у себя. И правда, баг такой есть. При том, что после первого открытия модального окна и его закрытия скачка уже не будет (уже пришло в голову решение - эмулируем автоматическое первое открытие модалки при прогрузке сайта в первые доли секунды, но что-то это костыль). Ну, для сайтов без фиксированно позиционированной шапки, scrollbar-gutter будет точно не лишним :)
@user-gz3wu1on9z
@user-gz3wu1on9z 25 күн бұрын
@@AleksanderLamkov Да, фича приятная. Хочется верить что докрутят
@Avdeev-Creator
@Avdeev-Creator 21 күн бұрын
Вроде круто, но справа пустая полоска..., без затемнения
@AleksanderLamkov
@AleksanderLamkov 20 күн бұрын
Привет! Нашел решение. Нужна лишь дополнительная обертка. См.: codepen.io/aleksander-lamkov/pen/rNbEemq
@Avdeev-Creator
@Avdeev-Creator 20 күн бұрын
@@AleksanderLamkov а это уже мега круть) пасиб
@kyleundefine1867
@kyleundefine1867 24 күн бұрын
а с сафари как дела обстоят?
@AleksanderLamkov
@AleksanderLamkov 24 күн бұрын
Не поддерживает. Но для сафари это и не нужно, там ведь нет такой проблемы со скроллбаром :)
@kyleundefine1867
@kyleundefine1867 24 күн бұрын
@@AleksanderLamkov у меня мак и тут есть этот эффект, разница в настройке виртуальго скролбара. как только подключается внешняя мышь скролбар становится физическим. и где в настройках это можно настраивать, но раз это можно настраивать значит проблема пока еще есть. если интересно то могу показать пруфы)
@AleksanderLamkov
@AleksanderLamkov 24 күн бұрын
Да, есть такая настройка. Но большинство юзеров сафари все же живут без скроллбаров)
@kyleundefine1867
@kyleundefine1867 24 күн бұрын
но и проблема там тоже остаётся) просто процент юзеров маленький, но везде где бы я не работал прилетает претензия с этим вопросом, так как есть манагер или диз на маке которые фефекают) а мы им ну лады давай го в спринт оценим проревьим тестируем и тд))
@ONM-Remont
@ONM-Remont 24 күн бұрын
А высота меняется?
@AleksanderLamkov
@AleksanderLamkov 24 күн бұрын
Должна, свойство и на горизонтальный скроллбар действует.
@ddrdeveloper
@ddrdeveloper 5 күн бұрын
это не очень хороший вариант, так как скролл трек остается видимым. Есть другой способ.
@AleksanderLamkov
@AleksanderLamkov 5 күн бұрын
В комментариях ниже скидывал ссылку на доработанное решение без описанной тобою проблемы: codepen.io/aleksander-lamkov/pen/rNbEemq
@ddrdeveloper
@ddrdeveloper 4 күн бұрын
@@AleksanderLamkov Ну, в принципе, неплохо, но, опять же, БЕЗ JS, есть, как минимум, еще одно решение. интересно, сможешь реализовать?
@AleksanderLamkov
@AleksanderLamkov 4 күн бұрын
Компонент модального окна без JS не сделать. Даже используя придется писать инлайновый onclick обработчик для кнопки открытия.
@AleksanderLamkov
@AleksanderLamkov 4 күн бұрын
А если ты намекаешь на решение через якорную ссылку, то ну оно уж точно кривое и «залочить» скролл в таком решении реализовать уж точно не получится.
@ddrdeveloper
@ddrdeveloper 4 күн бұрын
@@AleksanderLamkov Это понятно, я имею ввиду ТОЛЬКО скролл
@mr_Panda
@mr_Panda 22 күн бұрын
чО !?
@user-ew7dq9kw9n
@user-ew7dq9kw9n 18 күн бұрын
Поддержка не очень
@AleksanderLamkov
@AleksanderLamkov 18 күн бұрын
Safari можно не брать в расчёт. На MacOS по умолчанию скроллбаров и, соответственно, проблем с ними нет.
@user-pt2uz5st7i
@user-pt2uz5st7i 22 күн бұрын
В сафари на практике кто проверя?
@AleksanderLamkov
@AleksanderLamkov 22 күн бұрын
На устройствах с сафари по дефолту скроллбар отображается поверх интерфейса страницы и потому проблем с ним не наблюдается.
@user-ej6je7en1k
@user-ej6je7en1k 15 күн бұрын
не работает
@AleksanderLamkov
@AleksanderLamkov 15 күн бұрын
В каком браузере и какой версии?
@wt8712
@wt8712 23 күн бұрын
Проблема решена! Так же не перекрытый затемнением отступ справа:
@AleksanderLamkov
@AleksanderLamkov 23 күн бұрын
На сайтах с темным фоном на body эта проблема не будет так сильно бросаться в глаза :)
@AleksanderLamkov
@AleksanderLamkov 20 күн бұрын
Нашел решение. Нужна лишь дополнительная обертка. См.: codepen.io/aleksander-lamkov/pen/rNbEemq
@illiapotapov9939
@illiapotapov9939 25 күн бұрын
Загуглить произношение английского слова - 5 секунд...
@ilovecameltoe
@ilovecameltoe 19 күн бұрын
где прекрасная поддержка? в safari еще не работает ни в какой версии.
@AleksanderLamkov
@AleksanderLamkov 19 күн бұрын
В Safari скроллбара у большинства юзеров нет и проблем с ним соответственно тоже, так что да, повторюсь, поддержка отличная.
@dmitry6349
@dmitry6349 22 күн бұрын
«прекрасная поддержка» это 76% и на яблоках не работает вообще, такой себе совет
@AleksanderLamkov
@AleksanderLamkov 22 күн бұрын
На iOS и MacOS как правило привычного юзерам винды скорллбара нет и проблем с ним тоже. Так что да, повторю свои слова - поддержка отличная.
@dmitry6349
@dmitry6349 22 күн бұрын
@@AleksanderLamkov ​​⁠это выдуманные вами факты, «как правило на маках нет привычного скроллбара как у винды», а у меня мак и у меня есть, и у моего ПМ с маком они есть, и такие аргументы не прокатят на реальном проекте. Вот как завезут поддержку так и можно использовать будет, а пока годится только джунам в шортс показать за лайк)
@AleksanderLamkov
@AleksanderLamkov 22 күн бұрын
Я пользуюсь iOS 10 лет и MacOS 3 года. Скроллбара, при использовании девайсов с этими ОС без мыши, не было и нет. Он всегда рендерится поверх страницы и отображается лишь при взаимодействии со скроллом.
@AleksanderLamkov
@AleksanderLamkov 22 күн бұрын
На реальном проекте на реальной работе оперируют понятием «прогрессивное улучшение» и подобная фича, показанная в моем видео, отлично ложится на эту концепцию 🙃
@dmitry6349
@dmitry6349 22 күн бұрын
@@AleksanderLamkov в настройках системы это легко изменить, если вы пользуетесь дефолтными настройками это не значит что ими пользуются все.
@avatar33311111111111
@avatar33311111111111 23 күн бұрын
На самом деле, поддержка этого свойства на данный момент, очень слабая. По: can i use - всего 76%.
@AleksanderLamkov
@AleksanderLamkov 23 күн бұрын
Но Safari можно не учитывать, на iOS и MacOS по умолчанию классических скроллбаров нет.
@amphetyze
@amphetyze 22 күн бұрын
соскуфился сашка
@AleksanderLamkov
@AleksanderLamkov 22 күн бұрын
Да эт освещение неудачное, чесслово) Светотень решает
@artemj1
@artemj1 20 күн бұрын
Врете про поддержку, это не работает на маках с мышкой.
@AleksanderLamkov
@AleksanderLamkov 20 күн бұрын
Я не думаю, что процент пользователей Safari на MacOS с мышью большой. Такую тонкую статистику в открытом доступе не нашел, но я в реальной жизни вижу тысячи маководов вокруг, ну а мышь видел лишь в рекламных роликах от Apple пятнадцатилетней давности. Маководы в большинстве своем юзают трекпады и проблем со скроллбарами не испытывают, поэтому да, повторюсь, поддержка, на мой взгляд, отличная.
@biscvie
@biscvie 25 күн бұрын
Спасибо!
HTML • Переворачиваем нумерацию списка без CSS • Атрибут reversed
0:45
Александр Ламков — Friendly Frontend
Рет қаралды 20 М.
Как долго учить фронтенд? Сколько учиться на фронтенд-разработчика?
7:40
Когда на улице Маябрь 😈 #марьяна #шортс
00:17
Маленькая и средняя фанта
00:56
Multi DO Smile Russian
Рет қаралды 4 МЛН
What is the difference between Float, Flexbox and Grid CSS?
10:06
Анна Блок
Рет қаралды 216 М.
Frontend Roadmap 2024 | Что должен учить фронтенд-разработчик в 2024 году
14:35
Александр Ламков — Friendly Frontend
Рет қаралды 45 М.
Вопросы к собеседованию C# (МНОГОПОТОЧНОСТЬ, Garbage Collector, Коллекции, Типы данных)
16:49
Александр Алексеев | Папочка Дотнета
Рет қаралды 1,1 М.
Математик и черт
20:30
SerCtrlX
Рет қаралды 1,4 МЛН
Когда на улице Маябрь 😈 #марьяна #шортс
00:17