~ / blog / series / verstka-bez-syurprizov

Вёрстка без сюрпризов

Цикл о багах вёрстки, которые видит только посетитель: на айфоне, на другом мониторе, при другом масштабе, во время анимации. Как их находить замером, а не глазами, и как лечить. Всё — на рабочих сайтах, с цифрами.

#Вёрстка и фронтенд 3 мин

Страница ползёт вниз на айфоне, а CLS в Chrome — ноль

Chrome гасит сдвиги выше экрана привязкой прокрутки и не пишет их в CLS, у Safari привязки нет. Мерить высоту документа и позицию элемента в дробных пикселях. Три причины: шрифт 142 px, заглушки блоков 272 px и округление слайдера.

· · ·
#Вёрстка и фронтенд 2 мин

aspect-ratio и округление ширины слайда: 0,14 пикселя превращаются в 2

Высота картинки считалась от ширины через aspect-ratio, а swiper округляет ширину слайда: 341,25 → 341 px. Это 0,14 px по высоте и 2 px на айфоне — на каждой из двадцати строк. Лечение — высота напрямую в vw.

· · ·
#Вёрстка и фронтенд 3 мин

Safari падает на iPhone: слайдер с fade грузит обложки всех слайдов

В режиме fade swiper кладёт все слайды стопкой в видимую область, и loading=lazy грузит обложки всех товаров: 63,7 МБ, из них 46 — невидимые. Адреса только активному и соседям, дальним — visibility: hidden: 36,4 МБ без пустых слайдов.

· · ·
#Вёрстка и фронтенд 3 мин

769 слоёв композитинга: почему Safari падает, когда открываешь меню

Swiper в Safari сам делает слоем каждый слайд, translate3d для центрирования, clip-path на каждом слайде, выезд меню через right — и полноэкранное размытие над всем этим. Как посчитать слои и как ужать их с 769 до 22.

· · ·

$ tail -f /blog

Не пропустите новые статьи

Пишу разборы по скорости сайтов, кэшу и разработке — на живых проектах и с цифрами. Подпишитесь, и ссылка на новую статью придёт сразу после выхода. Без рекламы и спама, отписаться — в один клик.

В Telegramодна кнопка «Старт» в боте

или на почту

связаться

Расскажите о задаче