Как добавить поддержку webp в браузер Safari

На свой сайт я добавил все изображения в формате webp. Все эти изображения правильно отображаются в браузерах Chrome и Firefox, но не отображаются должным образом в Safari.


person wohifov    schedule 21.10.2019    source источник
comment
Наконец, в Safari 14 добавлена ​​поддержка изображений webp. По состоянию на 23 июня 2020 года Safari 14 находится в стадии бета-тестирования и будет выпущен позже в этом году. Это займет некоторое время, но, тем не менее, это отличная новость.   -  person Matthew C    schedule 25.06.2020


Ответы (4)


Формат webp на сегодняшний день не поддерживается Safari, и я не уверен, планируется ли его реализация в ближайшем будущем. Но вы можете предоставить браузеру выбор, использовать ли webp или jpg так.

<picture>
  <source srcset="
    /uploads/img_small.webp 1x,
    /uploads/img_big.webp 2x" type="image/webp">
  <source srcset="
    /uploads/img_small.jpg 1x, 
    /uploads/img_big.jpg 2x" type="image/jpeg">
  <img src="/uploads/img_small.jpg">
</picture>

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

person GEkk    schedule 16.11.2019
comment
Это хороший ответ, потому что у него есть второй исходный тег для запасного варианта, если он будет только один, возникнут проблемы с некоторыми версиями сафари. - person Oleg Apanovich; 09.04.2020
comment
Это отличное решение для замены тега img html, но что делать, если изображение должно появиться как background-image в CSS? Кроме того, я не большой поклонник идеи дублировать каждое изображение. Жаль, что не было другого пути. - person A. Richards; 03.05.2020
comment
что значит для 1x, 2x? - person Swee Hong; 19.05.2020
comment
Это означает плотность пикселей, если дисплей поддерживает более плотные пиксели, браузер будет использовать более крупное изображение. Вместо этого вы можете добавить атрибут ширины, но не оба, я просто предпочитаю, чтобы браузер выбрал правильный для пользовательского устройства. - person GEkk; 20.05.2020
comment
Надеюсь, это решение не повлияет на любую проблему, связанную с поисковой оптимизацией, и на то, насколько плохо Google прокручивает страницу. - person Deepesh singh; 06.09.2020
comment
Я тоже сталкиваюсь с этой проблемой, но почему Safari в Iphone поддерживает webp (поскольку изображение появилось), но не для Mac. Этот факт меня сбивает с толку ... - person Darky WC; 24.04.2021

Официальная поддержка WebP была добавлена ​​в Safari 14 на macOS Big Sur, а также на iOS, iPadOS и другие устройства.

Источник: https://www.macrumors.com/2020/06/22/webp-safari-14

person serniko97    schedule 26.06.2020
comment
Предупреждаем, но Big Sur и iOS14 все еще находятся в стадии бета-тестирования, поэтому широкое население не увидит этого до конца этой осени. - person user2619824; 26.07.2020
comment
Теперь это добавлено в стабильную версию safari 14 в соответствии с примечаниями к выпуску developer.apple.com/documentation/safari-release-notes/ У меня нет доступа к Safari, но если у кого-то есть, мне бы очень хотелось, чтобы это подтвердили. Вы можете просто протестировать его здесь, developers.google.com/speed/webp/gallery1. - person Haze; 01.10.2020
comment
@Haze У меня в настоящее время тоже нет доступа, но CanIUse теперь тоже показывает его: caniuse.com/webp - person Veronica Watt; 12.12.2020

ОБНОВЛЕНИЯ: Firefox, наконец, на подножке имиджа. Вроде префикса тоже не требуется. Кроме того, Safari наконец-то поддерживает WEBP, поэтому это решение больше не является полезным.


У меня нет репутации комментирующего, но я хотел использовать (вероятно, темпераментное) решение для фона CSS в дополнение к опции <picture>.

На данный момент Safari (обе версии) - единственный основной браузер, не поддерживающий WEBP, < strong>, но это также кажется единственным браузером, который поддерживает image-set без префикса .

Итак, если мы используем три блока кода (что я обычно использую в сценариях с фоновым изображением), чтобы разрешить полный откат для всех браузеров, это будет выглядеть примерно так:

background-image: url("exampleimage.webp"); /* Firefox - UPDATE: no longer needed in FF 88+! */
background-image: -webkit-image-set(
            url("exampleimage.webp") 1x,
            url("[email protected]") 1.5x,
            url("[email protected]") 2x
        );
background-image: image-set(
            url("exampleimage.jpg") 1x,
            url("[email protected]") 1.5x,
            url("[email protected]") 2x
        ) /* Safari */
person Veronica Watt    schedule 07.05.2020
comment
Имеется относительно широкая поддержка свойства стиля набора изображений. caniuse.com/#feat=css-image-set - person Dylan Maxey; 16.06.2020
comment
@DylanMaxey, да, сэр! Однако, как уже упоминалось, Safari - единственный браузер, который не требует префикса (-webkit-), и, следовательно, единственный браузер, который считывает значение без него. Кроме того, пока я здесь, я собираюсь повторить, что это решение может не работать в будущем, поскольку поддержка без префиксов может расшириться. НО я надеюсь, что к тому времени Safari примет WEBP. Так что используйте на свой страх и риск. - person Veronica Watt; 18.06.2020

Поддержка формата изображений WebP доступна в Safari 14, и поддержка изображений WebP в более старых версиях Safari невозможна. Вы не можете просто изменить файлы webp, чтобы они работали с несовместимыми версиями Safari, которые его не поддерживают. Она не будет работать.

Итак, для более старых версий сафари ваше единственное решение - сохранить копию каждого изображения в формате PNG или JPG или использовать изображение CDN, чтобы сделать это автоматически. CDN изображений берут файл изображения (JPEG или PNG) и на лету конвертируют его в формат изображения webp, если браузер его поддерживает. В противном случае он доставляет изображение в формате JPEG или PNG, чтобы все работало без сбоев.

person Hamid Sarfraz    schedule 04.08.2020
comment
Есть ли у вас еще одна справочная информация о поддержке CDN, о которой вы говорите? В предоставленной вами ссылке нет упоминания о преобразовании формата файла. - person Raine Revere; 21.10.2020
comment
Об этом говорится на странице плагина. - person Hamid Sarfraz; 22.10.2020