Перейти к основному содержимому

Элемент HTML <picture>

Элемент <picture> позволяет показывать разные изображения для разных устройств или размеров экрана.


Элемент HTML <picture>

Элемент <picture> даёт больше гибкости в выборе отображаемого изображения. Он содержит один или несколько элементов <source>, каждый из которых указывает на разное изображение с помощью атрибута srcset, чтобы браузер мог выбрать наиболее подходящее для текущего вида или устройства. У каждого <source> есть атрибут media, который сообщает, когда он является лучшим выбором.

Примечание: Всегда размещайте элемент <img> как последний дочерний элемент <picture>. Браузер использует его, если не поддерживает <picture> или если ни один <source> не подошёл.

Пример

Разные изображения, показываемые при разных размерах экрана.

Prompt
Страница, использующая элемент picture с двумя элементами source, показывающими разные изображения при разной ширине экрана (изображение с едой при min-width 650px, изображение с машиной при min-width 465px), и резервным изображением (img_girl.jpg) в качестве последнего дочернего элемента.
Вывод: полная HTML-страница

Когда использовать элемент Picture

Есть две основные причины использовать <picture>. Первая — пропускная способность: на маленьком экране не нужно загружать большое изображение, поэтому браузер использует первый подходящий <source>, игнорируя остальные. Вторая — поддержка форматов: некоторые браузеры не поддерживают все форматы изображений, поэтому можно перечислить изображения в нескольких форматах, и браузер использует первый распознанный.

Пример

Браузер использует первый распознанный формат изображения.

Prompt
Страница, использующая элемент picture с двумя элементами source, предлагающими разные форматы изображения (сначала PNG, затем JPG), и GIF-изображением (img_beatles.gif, alt Beatles) в качестве резервного последнего дочернего элемента, чтобы браузер использовал первый распознанный формат.
Вывод: полная HTML-страница

Теги HTML для изображений

Теги, связанные с изображениями: <img> (определяет изображение), <map> (определяет карту изображения), <area> (определяет кликабельную область внутри карты изображения) и <picture> (определяет контейнер для нескольких ресурсов изображений).