Изображения и медиа: srcset, picture, lazy loading
↑ 1.2 HTML · ← Предыдущая · → Следующая
Зачем это на собесе
Изображения — основной вес страницы: важно уметь отдавать нужный размер и формат.
Объяснение
<!-- Адаптивные размеры: браузер выбирает подходящий файл -->
<img src="hero-800.jpg"
srcset="hero-400.jpg 400w, hero-800.jpg 800w, hero-1600.jpg 1600w"
sizes="(max-width: 600px) 100vw, 50vw"
width="1600" height="900" alt="Описание" loading="lazy" decoding="async">
<!-- Разные форматы и «арт-дирекшн» -->
<picture>
<source type="image/avif" srcset="hero.avif">
<source type="image/webp" srcset="hero.webp">
<source media="(max-width: 600px)" srcset="hero-mobile.jpg">
<img src="hero.jpg" alt="Описание" width="1600" height="900">
</picture>| Приём | Эффект |
|---|---|
srcset + sizes | нужный размер под экран и плотность пикселей |
<picture> | выбор формата (AVIF/WebP) и разные кадры |
loading="lazy" | отложенная загрузка вне экрана (не для LCP-изображения) |
width/height | резервирует место, нет сдвигов (CLS) |
decoding="async", fetchpriority | приоритеты для главного изображения |
| SVG | векторные иконки, стили через CSS |
<video>, <audio> | controls, preload, poster, playsinline, несколько source |
| CDN и трансформации | ресайз, сжатие, форматы «на лету» |
Форматы: JPEG (фото), PNG (прозрачность), WebP/AVIF (лучше сжатие), SVG (иконки), GIF → видео mp4/webm.
Нюансы и подводные камни
loading="lazy"на главном изображении ухудшает LCP.- Без размеров изображение сдвигает вёрстку при загрузке.
altобязателен: осмысленный для контента, пустой (alt="") для декоративных.- Огромные оригиналы на маленьких экранах — лишний трафик.
- Автовоспроизведение видео со звуком блокируется браузерами.
Практика
- Подготовьте три размера и форматы AVIF/WebP для изображения и подключите через
picture. - Измерьте LCP до и после оптимизации.
- Настройте lazy loading для галереи.
Вопросы с ответами
Зачем
srcsetиsizes?Чтобы браузер выбрал файл под ширину области отображения и плотность экрана.
Когда не использовать
loading="lazy"?Для изображений в первом экране, особенно LCP-элемента.