← Назад к вопросам

Что такое тег picture в HTML?

1.2 Junior🔥 171 комментариев
#HTML и CSS

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI7 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое тег <picture> в HTML?

Тег <picture> — это современный HTML-элемент, предназначенный для адаптивной загрузки изображений в веб-разработке. В отличие от традиционного <img>, который загружает единственный файл, <picture> служит контейнером-оберткой, позволяющим определить несколько источников изображения (source) для разных условий отображения (например, разрешение экрана, плотность пикселей, формат изображения). Браузер анализирует вложенные <source> элементы и выбирает наиболее подходящий вариант, загружая только нужный файл, что повышает производительность и улучшает пользовательский опыт.

Как работает <picture>: синтаксис и логика

Внутри <picture> размещаются:

  1. Один или несколько элементов <source> с атрибутами, указывающими условия выбора (например, media, type, srcset).
  2. Обязательный элемент <img> в конце — это fallback (резервный вариант), который также задает базовые размеры и alt-текст.

Пример базовой структуры:

<picture>
  <!-- Для экранов шириной от 1200px загрузится landscape-large.webp -->
  <source 
    media="(min-width: 1200px)" 
    srcset="images/landscape-large.webp" 
    type="image/webp">
  <!-- Для экранов шириной от 800px загрузится portrait-medium.avif -->
  <source 
    media="(min-width: 800px)" 
    srcset="images/portrait-medium.avif" 
    type="image/avif">
  <!-- Резервный вариант: если браузер не поддерживает picture/source, загрузится этот img -->
  <img 
    src="images/fallback.jpg" 
    alt="Описание изображения" 
    width="800" 
    height="600">
</picture>

Ключевые атрибуты и сценарии использования

1. Адаптивность под размеры экрана (media)

Атрибут media содержит медиа-запросы CSS, аналогичные тем, что используются в адаптивном дизайне. Это позволяет загружать разные изображения для мобильных устройств, планшетов и десктопов.

<picture>
  <source media="(max-width: 768px)" srcset="mobile.jpg">
  <source media="(max-width: 1024px)" srcset="tablet.jpg">
  <img src="desktop.jpg" alt="Адаптивное изображение">
</picture>

2. Поддержка современных форматов (type)

С помощью type можно указать MIME-тип изображения (например, image/webp, image/avif). Браузер выберет <source> с поддерживаемым форматом, что позволяет использовать оптимизированные форматы для совместимых браузеров, оставляя fallback (PNG/JPG) для остальных.

<picture>
  <source srcset="photo.avif" type="image/avif">
  <source srcset="photo.webp" type="image/webp">
  <img src="photo.jpg" alt="Современные форматы" >
</picture>

3. Работа с плотностью пикселей (srcset)

Атрибут srcset позволяет задавать набор изображений для экранов с разной плотностью пикселей (Retina-дисплеи). Это особенно полезно для сохранения четкости без избыточного размера файла на обычных экранах.

<picture>
  <source 
    srcset="image-2x.webp 2x, image-1x.webp 1x" 
    type="image/webp">
  <img 
    srcset="image-2x.jpg 2x, image-1x.jpg 1x" 
    src="image-1x.jpg" 
    alt="Изображение для Retina">
</picture>

Преимущества использования <picture>

  • Повышение производительности: Загружается только подходящее изображение, экономя трафик и время загрузки (особенно важно для мобильных сетей).
  • Гибкость дизайна: Можно использовать художественное кадрирование (art direction) — например, на мобильном показывать портретную версию, а на десктопе — ландшафтную.
  • Поддержка новых форматов: Плавный переход на AVIF/WebP без потери совместимости со старыми браузерами.
  • Декларативный подход: Логика выбора изображения описывается в HTML, а не в JavaScript, что улучшает читаемость и SEO.

Ограничения и рекомендации

  • Обязательный <img>: Без него <picture> не работает. Всегда указывайте alt, width и height для <img> во избежание смещений макета (Cumulative Layout Shift — CLS).
  • Браузерная поддержка: Поддерживается всеми современными браузерами (caniuse). Для устаревших (IE11) игнорируется, и загружается <img>.
  • Сложность генерации: Требуется подготовка нескольких версий изображений, что усложняет бэкенд-обработку.

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