Урок 36. Домашнее задание: Адаптивные изображения: srcset, sizes, picture

📁 Раздел: Адаптивная вёрстка ⏱️ Время изучения: ~75 мин 🎯 Сложность: Средняя
#srcset #sizes #picture #source #media #type #img #object-fit #object-position #contain #fill

⚡ Кратко

Соберите hero-блок с <picture>: WebP + JPG-fallback, art direction (портрет mobile / панорама desktop), корректные alt, width, height, sizes. Проверьте в DevTools.

Домашнее задание

Задача: Подготовьте hero-изображение для телефона и desktop: добавьте <picture> с двумя <source>, WebP/fallback, корректный alt, width, height и sizes. Реальные файлы можно заменить любыми изображениями подходящих размеров (или плейсхолдерами вроде picsum/placeholder-сервисов).
1

Соберите структуру

Создайте index.html и styles.css без внешних зависимостей. Добавьте контейнер .hero с картинкой и текстом.

2

Добавьте picture с форматом и art direction

Первый <source> — широкий WebP для (min-width: 64rem), второй — мобильный WebP, финальный <img> — JPG-fallback с alt и размерами.

<picture class="hero-media">
  <source type="image/webp" media="(min-width: 64rem)"
          srcset="hero-wide.webp 960w, hero-wide@2x.webp 1920w" sizes="50vw">
  <source type="image/webp"
          srcset="hero-mobile.webp 480w, hero-mobile@2x.webp 960w" sizes="100vw">
  <img src="hero-mobile.jpg" alt="Опишите содержание кадра"
       width="960" height="640">
</picture>
3

Сделайте картинку резиновой

.hero-media img { display: block; width: 100%; height: auto; border-radius: .75rem; }
4

Проверьте вручную

Откройте DevTools (F12) → эмуляция устройства. Меняйте ширину и DPR, во вкладке Network смотрите, какой файл реально скачался на mobile и desktop.

Критерии

  • Нет горизонтального скролла, картинка не вылезает за контейнер.
  • У <img> есть осмысленный alt, width и height (нет скачков CLS).
  • На телефоне грузится лёгкий файл, на desktop Retina — крупный и чёткий.
  • В браузере без WebP показывается JPG-fallback.

Навигация