Елемент <picture>
Last updated
Last updated
Елемент <picture> використовується для виведення зображень на сторінці і дозволяє надавати декілька варіантів зображень залежно від різних умов, таких як розмір вьюпорту, щільність пікселів та інші характеристики пристрою.
Основна ідея використання <picture> полягає в тому, що можна вкладати в нього елементи <source>, кожен з яких може вказувати своє власне зображення та умови його відображення, а також елемент <img>, який виведе зображення за замовчуванням, якщо жодна з умов не була задоволена.
Але не завжди потрібно використовувати елемент <picture>, інокри просто достатньо респонсивного <img>.
Елемент <picture> - це контейнер для одного або більше елементів <source>. У елементах <source> перераховують можливі варіанти зображення. Також усередині йде один обов'язковий елемент <img>.
picture - контейнер в якому описують можливі варіанти зображення.
source - браузер перевіряє кожен такий елемент і вибирає той, який найбільше підходить. Браузер для цього аналізує його атрибути srcset, media, sizes і type.
img - застосується це зображення, якщо жоден варіант source не підійде.
Кінцеве зображення завантадиться в полотні, яке займає елемент <img>.
У елементі <picture> можна використовувати зображення сучасних форматів, наприклад webp. Для браузерів, які не підтримують сучасні формати вказують альтернативні формати, наприклад jpg або png. Атрибут type вказує зображення. Застосується той елемент <source>, який найкраще підходить.
У прикладі показано, як вказати браузеру завантажити сучасний формат зображення webp, або його альтернативу в png, якщо формат webp не підтримується.
Всі можливі варіанти зображень перераховують у елементах <source>. Браузер їх послідовно обробляє.
Кадрування використовують, коли необхіжно завантажувати різні зображення в залежності від щирини екрану. Наприклад, завантажувати альбомну (landscape) або книжкову (portrait) версію зображення в залежності від орієнтації або роздільної здатності пристрою.
За допомогою атрибуту media можна визначити медіа-запит, який браузер буде аналізувати для вибору елемента <source>. Обиратиметься той елемент, який задовольняє умову.
У цьому прикладі:
При вьюпорті до 600px буде завантажено портретне зображення 400x600.
Для екранів шириною від 601px і ширше, буде завантажено ландшафтне зображення 800x500.
Для підтримки екранів з високою щільністю пікселів, кожному елементу <source> необхідно додати набір зображень з дескрипторами в атрибут srcset, і не забути задати атрибут sizes.
Покликання:
Сервіс працює із форматами зображень webp.