Тег <picture>
Описание
Тег <picture> предоставляет разработчикам гибкость в определении ресурсов изображений. Это контейнер для нескольких элементов <source> и одного элемента <img>, позволяющий браузеру выбирать наиболее подходящее изображение в зависимости от условий (разрешение экрана, плотность пикселей, поддержка форматов).
<picture>
<source srcset="image-large.jpg" media="(min-width: 1200px)">
<source srcset="image-medium.jpg" media="(min-width: 768px)">
<img src="image-small.jpg" alt="Описание изображения">
</picture>
Ключевые особенности:
- Поддержка адаптивного дизайна (разные изображения для разных экранов)
- Возможность использовать современные форматы (WebP, AVIF)
- Обязательное наличие
<img>как fallback - Браузер выбирает первый подходящий
<source> - Поддержка Retina-дисплеев через плотность пикселей (1x, 2x)
<picture>
<source type="image/avif" srcset="image.avif">
<source type="image/webp" srcset="image.webp">
<img src="image.jpg" alt="Пример с разными форматами">
</picture>
Рекомендации по использованию:
- Используйте для критически важных изображений
- Оптимизируйте загрузку - указывайте сначала современные форматы
- Всегда добавляйте атрибут alt для
<img> - Для простых случаев достаточно
srcsetв<img> - Тестируйте на реальных устройствах
Тег <picture> является мощным инструментом для адаптивной загрузки изображений, позволяя значительно улучшить производительность и качество отображения графики на различных устройствах.
Атрибуты
| class | CSS-классы для стилизации |
| data-* | Пользовательские данные |
| hidden | Скрывает элемент |
| id | Уникальный идентификатор |
| style | Инлайновые стили |
| title | Всплывающая подсказка |
Поддержка браузерами
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|
| 13.0 | 38.0 | 25.0 | 38.0 | 9.1 |




