Вебсправочник
Справочник HTML

Тег <source>: выбор ресурса в picture и медиаплеере

Элемент source предлагает браузеру варианты изображения, видео или звука. Его атрибуты зависят от родителя: для picture используются srcset и условия выбора, для аудио и видео — src.

Назначение

Элемент source предлагает браузеру варианты изображения, видео или звука. Его атрибуты зависят от родителя: для picture используются srcset и условия выбора, для аудио и видео — src.

Как это работает

В picture браузер рассматривает source по порядку, проверяя media и поддерживаемый type. Завершающий img обязателен как элемент изображения и запасной вариант; альтернативный текст задаётся именно ему.

Пример

<picture>
  <source media="(min-width: 60rem)" srcset="/images/desk-wide.webp" type="image/webp">
  <img src="/images/desk-small.jpg" alt="Рабочий стол с открытым редактором" width="640" height="400">
</picture>

Что должно получиться

На широком окне при поддержке WebP выбирается широкий ресурс; иначе используется img. Изображения должны существовать и подходить по композиции. Размеры в примере предполагают одинаковые пропорции подготовленных файлов.

Граница применения и частая ошибка

Source не имеет закрывающего тега и не получает alt вместо img. Условия media проверяют окно, а не произвольный контейнер. При проверке уже загруженного изображения браузер может сохранять подходящий ресурс в кеше.

Самостоятельная проверка

Подготовьте два изображения с одинаковыми пропорциями. Измените окно, перезагрузите страницу с отключённым кешем и посмотрите currentSrc у img в DevTools. Убедитесь, что смысл alt верен для обеих версий.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.