Адаптивні зображення

Конспект лекції: тег picture, атрибут srcset та оптимізація графіки для різних пристроїв

1. Тег picture

Тег <picture> дозволяє показувати різні зображення на різних пристроях. Це обгортка (як <div>), яка сама нічого не відображає.

Структура

<picture>
<source
srcset="banner-mobile.webp 1x, banner-mobile-2x.webp 2x"
media="(max-width: 480px)"
>
<source
srcset="banner-desktop.webp 1x, banner-desktop-2x.webp 2x"
>
<img src="banner-desktop.webp" alt="Банер">
</picture>

Як це працює

  • <source> — аналог <img>, задає зображення через srcset
  • Атрибут media — ті самі медіазапити, що й у CSS (min-width, orientation тощо)
  • Атрибут srcset — список зображень із умовами (1x, 2x для щільності пікселів або 320w, 768w для ширини)
  • <img> в кінці — обов’язковий; потрібний для атрибута alt та як fallback при проблемах із завантаженням

Коли використовувати

  • Банери — горизонтальний банер на десктопі, вертикальний на мобільному
  • Різні формати — WebP для сучасних браузерів, PNG/JPEG як fallback
  • Різний вміст — детальне зображення на великому екрані, спрощене на маленькому

2. Атрибут srcset

Атрибут srcset можна використовувати як у <source>, так і безпосередньо в <img>:

<img
src="photo.jpg"
srcset="photo.jpg 1x, photo-2x.jpg 2x, photo-3x.jpg 3x"
alt="Фото"
>

Дескриптори

  • 1x, 2x, 3x — щільність пікселів (1x = звичайний екран, 2x = Retina)
  • 320w, 768w — ширина зображення в пікселях (браузер обирає найкраще за шириною viewport)

Особливості кешування

Браузер кешує зображення і не «понижує» якість: якщо вже завантажено 2x-версію, при зменшенні вікна він не завантажить 1x. Для тестування увімкніть Disable cache у DevTools.

SVG як адаптивне зображення

Всередині SVG-файлу можна писати медіазапити. Елементи SVG будуть показуватися або зникати залежно від розміру. Наприклад, іконка будинку: на маленькому екрані — спрощена, на великому — з деталями (вікна, двері).

3. Підсумкова таблиця

Тема Що запам’ятати
<picture> Різні зображення на різних пристроях; <source> + media + srcset; <img> обов’язковий
srcset Список зображень із дескрипторами: 1x/2x (щільність) або 320w/768w (ширина)

Віталій Капля

Засновник, веб-розробник, WordPress-експерт

Програмуванням почав цікавитися ще у 1997 році, перше знайомство з майбутньою професією – Visual Basic. У 2004-2005 роках займався розробкою…

Більше про автора

Інженер цифрових продуктів та архітектор веб-рішень

Безкоштовна консультація + розрахунок вартості

Обговоримо
Ваш проект?

Безкоштовна консультація + розрахунок вартості

Більше цікавих статей

Вхід для клієнтів

Цей сайт використовує файли cookie

Ми використовуємо файли cookie, щоб персоналізувати вміст і рекламу, надавати функції соціальних мереж і аналізувати наш трафік. Ми також надаємо інформацію про ваше використання нашого веб-сайту нашим партнерам із соціальних мереж, реклами та аналітики, які можуть поєднувати її з іншою інформацією, яку ви їм надали або зібрали під час використання вами їхніх послуг. Продовжуючи користуватися нашим сайтом, ви погоджуєтеся із використанням файлів cookie, а також приймаєте нашу Політику конфіденційності та Умови використання.

Віртуальний асистент
Вітаю! Я — віртуальний асистент KAPLIA.PRO! Розкажу про послуги, проєкти в портфоліо, орієнтовну вартість і підхід до роботи — від сайтів і eCommerce до вебдодатків, CRM, ботів та AI-агентів. Запитуйте!

Продовжуючи роботу з ШІ асистентом я погоджуюсь з умовами використання сайту та політикою конфіденційності.

AI-асистент може помилятися у відповідях