HTML-элемент <picture> служит контейнером для одного или более элементов {{HTMLElement("source")}} и одного элемента {{HTMLElement("img")}} для обеспечения оптимальной версии изображения для различных размеров экрана. Браузер рассмотрит каждый из дочерних элементов <source> и выберет один, соответствующий лучшему совпадению; если совпадений среди элементов <source> найдено не будет, то будет выбран файл, указанный атрибутом {{htmlattrxref("src", "img")}} элемента <img> . Затем выбранное изображение отображается в пространстве, занятом элементом <img>.
Чтобы выбрать оптимальное изображение, {{Glossary("user agent")}} анализирует атрибуты {{htmlattrxref("srcset", "source")}}, {{htmlattrxref("media", "source")}}, и {{htmlattrxref("type", "source")}} элемента <source> и выбирает совместимое изображение, которое наилучшим образом соответствует текущему макету страницы, характеристикам устройства отображения и т. д.
Элемент <picture> часто используют для того, чтобы обеспечить HiDPI (Retina)-версию изображений для дисплеев с высоким разрешением, а также для добавления других форматов изображений, не поддерживаемых всеми браузерами.
| Категории контента | Потоковый контент, фразовый контент, встроенный контент |
|---|---|
| Разрешённый контент | Ноль или более элементов {{HTMLElement("source")}}, затем один элемент {{HTMLElement("img")}}, при необходимости смешанный с элементами поддержки сценариев. |
| Пропуск тегов | Нет. Открывающий и закрывающий тег являются обязательными. |
| Разрешённые родители | Любой элемент, который разрешает встроенный контент |
| Разрешённые ARIA roles | Нет |
| DOM interface | {{domxref("HTMLPictureElement")}} |
Этот элемент содержит только универсальные атрибуты.
Эти примеры демонстрируют влияние различных атрибутов элемента {{HTMLElement("source")}} на выбор изображения, которое будет отображаться при их использовании внутри тега <picture>.
mediaАтрибут media позволяет определить медиавыражение, которое веб-браузер будет анализировать для выбора элемента {{HTMLElement("source")}}. Если медиавыражение определяется как ложное (false), то элемент {{HTMLElement("source")}} пропускается.
<picture> <source srcset="mdn-logo-wide.png" media="(min-width: 600px)"> <img src="mdn-logo-narrow.png" alt="MDN"> </picture>
typeАтрибут type позволяет вам обозначить MIME-тип данных, указанных в атрибуте srcset элемента {{HTMLElement("source")}}. Если браузер не поддерживает данный тип, то элемент {{ HTMLElement("source")}} опускается.
<picture> <source srcset="mdn-logo.svg" type="image/svg+xml"> <img src="mdn-logo.png" alt="MDN"> </picture>
{{Compat}}