Клавиша / esc

image-set()

Позволяет установить несколько разрешений и типов фонового изображения.

Время чтения: меньше 5 мин

Кратко

Скопировано

CSS-функция image-set() позволяет перечислить несколько фоновых изображений с условиями, по которым браузер решит, какое из них наиболее подходящее для загрузки в данный момент.

Похож по принципу работы на тег <picture>.

Пример

Скопировано
        
          
          div {  background-image: image-set(    url("puppy@1x.webp") type("image/webp") 1x,    url("puppy@2x.webp") type("image/webp") 2x,    url("puppy@1x.png") type("image/png") 1x,    url("puppy@2x.png") type("image/png") 2x  );}
          div {
  background-image: image-set(
    url("puppy@1x.webp") type("image/webp") 1x,
    url("puppy@2x.webp") type("image/webp") 2x,
    url("puppy@1x.png") type("image/png") 1x,
    url("puppy@2x.png") type("image/png") 2x
  );
}

        
        
          
        
      

Как понять

Скопировано

На сайт могут заходить с разных устройств. У многих дисплеи с повышенной плотностью пикселей и им нужно показывать картинку хорошего качества. А на телефонах лучше показывать небольшие файлы ради ускорения загрузки страницы. Нужно как-то давать разным клиентам разные версии изображений. Раньше для этого использовали медиавыражения, а теперь есть простые и удобные решения, которые позволяют через запятую указать все версии изображений. Конечно, есть тег <picture>, но если изображение декоративное, будет правильнее установить его как фон элемента.

Как пишется

Скопировано

Внутри круглых скобок указываем через запятую две и более ссылки на изображения при помощи функции url() и пишем условие для выбора этой картинки.

В качестве условия можно использовать коэффициент плотности пикселей: 1x, 2x и так далее. Или указываем тип изображения в формате MIME. Картинка будет загружена, если формат поддерживается браузером. Можно комбинировать условия.

Как и в случае с <picture>, важен порядок перечисления форматов картинок: сначала более предпочтительные (AVIF, WebP), потом — менее (PNG, JPEG). Так браузер поймёт, какой из форматов ему выбрать, если он поддерживает все. Порядок перечисления картинок разной плотности не важен, браузер сам выберет подходящую.

Поддержка

Скопировано

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

Проверить поддержку вы можете в демке.

Открыть демо в новой вкладке
Поддержка в браузерах:
  • Chrome 113, поддерживается
  • Edge 113, поддерживается
  • Firefox 89, поддерживается
  • Safari 17, поддерживается
О Baseline