размер изображения | % сжатия | размер файла, kb | цена, коп | цена в % |
---|---|---|---|---|
1920x1080 | 0% | 976 | 3.4 | 100.00% |
960x540 | 50% | 397 | 1.4 | 40.0% |
768x432 | 60% | 263 | 0.9 | 27.0% |
480x270 | 75% | 114 | 0.4 | 11.5% |
320x180 | 84% | 54 | 0.2 | 5.5% |
Можно сделать вывод, что стоит загружать изображение наиболее подходящее по размеру и не загружать другие изображения.
Расчет цены взят по этой ссылке как 200Мб/7грн
Что обрезать - горизонталь или вертикаль?
Art direction problem!
Изображения с фиксированной шириной для экранов с различным dpi
Принцип расчета размеров изображения:
ширина * K dpi, длина * K dpi
Пример: K dpi = 1 // 800x600.jpg, K dpi = 1.5 // 1200x900.jpg, K dpi = 2 // 1600x1200.jpg,
Синтаксис для тега img:
<img src="sea_800x600.jpg" srcset="sea_1200x900.jpg 1.5x, sea_1600x1200.jpg 2x" width="800" alt="sea" >
Изображения с переменной шириной экранов
// медиаусловия атрибута sizes
Синтаксис для тега img:
<img sizes="(max-width: 480px) 100vw, (max-width: 800px) 50vw, calc(33vw - 100px)" srcset="sea-200.jpg 200w, sea-400.jpg 400w, sea-800.jpg 800w, sea-1600.jpg 1600w" src="sea-400.jpg" alt="sea" >
Браузер может выбирать любой ресурс, который его алгоритмы считают нужным. Можно предпалагать, что браузер будет выбирать таким образом:
для экрана в 320px подходит правило (max-width: 480px) и изображение должно поместиться в 100vw (в 320px) из имеющихся файлов подходящит sea-400.jpg под 400w и этот файл будет сжат браузером до 320px для экрана в 640px подходит правило (max-width: 800px) и изображение должно поместиться в 50vw (в 320px) итого подходит тот же файл sea-400.jpg под 400w и этот файл будет сжат браузером до 320px
Тег picture это контейнер для одного или более элементов <source> и одного элемента <img>
Главное отличие от img - наличие хорошо описанных в спецификации правил отбора изображений
Принцип работы - если условия отбора совпали, то подгружается первый подходящий файл.
Если условия отбора не подошли, то загружается изображение из обязательного тега <img>
Атрибуты тега source:
<picture> <source media="(min-width: 720px)" srcset="large.jpg"> <source media="(min-width: 512px)" srcset="middle.jpg"> <img src="small.jpg" alt="sea"> </picture>
<picture> <source type="image/webp" srcset="sea.webp"> <source type="image/vnd.ms-photo" srcset="sea.jpxr"> <img src="sea.jpg" alt="sea"> </picture>
<picture> <source media="(min-width: 1024px)" srcset="fullImage.jpg"> <img src="cutImage.jpg" alt="sea"> </picture>
Для этого сайта были использованы идеи с сайта, который рекомендуется прочитать для закрепления материала