только webp - получается safari раньше 2022г. (т.е. большой процент) - отображать изображения вообще не будет, получается так наверное ?
На всех моих коммерческих проектах иконки были png так что мне кажется что ты зря паришься)
Ну я не спора ради, но на моих сайтах, уже лет 5 точно все иконки в svg )
Разберитесь с графикой в вебе, просмотрите какие-то базовые видео. Вы должны покрывать весь спектр браузеров с помощью разных форматов графики. Браузер, который поддерживает более новый формат, загрузит только его. Например, если ваше изображение в jpg формате, вы поставляете в браузеры следующий минимальный набор оптимизированных вашей системой сборки изображений: 1. jpg 1x 2. jpg 2x 3. webp 1x 4. webp 2x 5. avif 1x 6. avif 2x
Я с вами полностью согласен, набор изображений приведенный в качестве примера отличный - но есть такие моменты: -) Это повышает требования к backend'у (здесь это не считаю аргументом, т.к. backend'ер должен грамотно уметь выполнять свои задачи, иначе пусть его задачи выполняет тот, кто умеет их выполнять грамотней и меньше ленится получать новые знания 🙂) -) Что в таком случае делать с изображениями background-image ? )
Свг же должны быть
Да,они будут меняться на другие
тоже самое, определять поддержку через директиву @supports
Сейчас изучаю вопрос, везде почему-то рекомендуют использовать modernizr, на мой взгляд - тогда лучше уж jpeg'ом ограничиться, без webp 😀 А вы, если не секрет, как детектите поддержку браузером такого набора изображений, на каждое конкретное с помощью css supports ?
Зачем привлекать js, если работает CSS?
Да да, я о том-же, но к примеру такая конструкция как-то своеобразно выглядит, это причем без avif'а:
Или как вы предлагаете через supports выбирать изображение из 6 вариантов ?
Примерно так, но естественно автоматизировать SCSS-ом .bg { background-image:url(real-img-name.jpg); } @supports (background-image:-webkit-image-set(url(jopa.webp) 1x)) { .bg{ background-image:-webkit-image-set(url(real-img-name.webp) 1x) } } @supports (background-image:image-set(url(jopa.webp) 1x)) { .bg{ background-image:image-set(url(real-img-name.webp) 1x) } } @media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi) { .bg{ background-image:url(real-img-name@2x.jpg) } @supports (background-image:-webkit-image-set(url(jopa@2x.webp) 2x)) { .bg{ background-image:-webkit-image-set(url(real-img-name@2x.webp) 2x) } } @supports (background-image:image-set(url(jopa@2x.webp) 2x)) { .bg{ background-image:image-set(url(real-img-name@2x.webp) 2x) } } }
Спасибо! Да, наверное из того, что можно придумать - действительно наиболее грамотное решение )
Обсуждают сегодня