GTmetrix жалуется на неоптимизированные изображения в адаптивном дизайне


Веб-сайт GTmetrix дает мне низкий балл по "Оптимизации изображений" по следующей причине:

На моей главной странице у меня есть 4 колонки с изображениями. Каждый столбец занимает 25 % разрешения экрана, поэтому на моем мониторе 1920x1080px каждое изображение имеет ширину 463 пикселей. Однако, когда пользователь просматривает главную страницу на устройстве с разрешением от 600 пикселей до 1200 пикселей, я показываю только 2 столбца вместо 4, что увеличивает ширину изображений по сравнению с тем, когда у меня 4 столбца (при приближении к 1200px). Когда я показываю 2 изображения на ширине браузера 1199 пикселей, каждое изображение имеет ширину 576 пикселей. Теперь вот в чем проблема.

Если бы я использовал естественный размер изображения 576 пикселей, GTmetrix сказал бы "Оптимизируйте следующие изображения, чтобы уменьшить их размер на X", потому что я бы использовал естественное изображение шириной 576 пикселей, но когда у меня 4 столбца, максимальный размер, который мне понадобится, составляет 463 пикселей.

Если бы у меня было естественное изображение в 463 пикселей, изображения, отображаемые при использовании 2 столбцов, были бы растянуты до 576 пикселей, что снизит качество.

Теперь я не могу понять, как удовлетворить обе стороны.

Author: Stephen Ostermiller, 2018-11-03

1 answers

Лучший способ оптимизировать производительность страницы, но при этом предоставлять изображения с высоким разрешением клиентам с высоким разрешением, - это использовать атрибут img srcset HTML, например:

<img
 srcset="
  /img/image4x.jpg 4x,
  /img/image3x.jpg 3x,
  /img/image2x.jpg 2x,
  /img/image1x.jpg 1x"
 src="/img/image1x.jpg"
>

В этом примере большие множители ссылаются на изображения, размер которых в 2, 3 и 4 раза превышает размер по умолчанию. Современные браузеры достаточно умны, чтобы автоматически выбирать изображение большего размера, если они работают на дисплее с высоким разрешением.

Вы даже можете использовать атрибут sizes, чтобы подсказать браузеру, какое изображение лучше всего подходит для другого экрана размеры.

Дополнительная информация:

  1. https://html.com/attributes/img-srcset/
  2. https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images
 2
Author: Maximillian Laumeister, 2018-11-03 23:09:29