Вёрстка
- 2 ответа
- 0 вопросов
3
Вклад в тег
<picture>
<img class="image"
src="img/mobile.jpg"
alt="Описание" width="260" height="260">
<picture>"img/mobile.jpg".<picture>
<source srcset="img/mobile.webp"
type="image/webp">
<img class="image"
src="img/mobile.jpg"
alt="Описание" width="260" height="260">
<picture>img/mobile.webp.<picture>
<source media="(min-width:768px)"
srcset="img/desktop.webp"
type="image/webp">
<source media="(min-width:768px)"
srcset="img/picture/desktop.jpg">
<source srcset="img/mobile.webp"
type="image/webp">
<img class="image"
src="img/mobile.jpg"
alt="Описание" width="260" height="260">
<picture>768px и браузер поддерживает webp - грузится desktop.webp, если не поддерживает то - desktop.jpg.mobile@1x.jpg (260х260рх). плюс эти же картинки, но в 2 раза большем разрешении: mobile@2x.jpg (520х520рх). Загружать их, или нет будет решать браузер, на основании данных о плотности пикселей на экрана полученных от системы (это тоже отдельная тема для обсуждения, есть статьис названием что-то вроде "Пиксель на самом деле не пиксель". Точного названия не помню, но смысл в том, что на "так называемых" Retina-дисплеях при фактическом разрешении, например, 2500х1600px браузер будет "считать", что окно шириной 1250px). Короче для "ретинизации" код нужно изменить так:<picture>
<source media="(min-width:768px)"
srcset="img/desktop@1x.webp, img/webp/desktop@2x.webp 2x"
type="image/webp">
<source media="(min-width:768px)"
srcset="img/picture/desktop@1x.jpg, img/picture/desktop@2x.jpg 2x">
<source srcset="img/webp/mobile@1x.webp, img/webp/mobile@2x.webp 2x"
type="image/webp">
<img class="image"
src="img/mobile@1x.jpg"
srcset="img/mobile@2x.jpg 2x"
alt="Описание" width="260" height="260">
</picture><source>: если ширина экрана больше 768рх, браузер поддерживает webp и плотность пикселей 2x грузится desktop@2x.webp, если плотность пикселей 1х - desktop@1x.webp<source> - все тоже самое для .jpg<source><img>.mobile@1x.jpg, mobile@2x.jpg, mobile@1x.webp, mobile@2x.webp.