STATUS IS UPВИКИ ПО ОПТИМИЗАЦИИ САЙТОВ
18Ускорить
Производительность и доставка / Ускорить

Адаптивные изображения с srcset и sizes

Помогите браузеру выбрать изображение, соответствующее реальному слоту макета, вместо отправки одному и тому же большого оригинала всем посетителям.

Адаптивные изображения с srcset и sizes — ВИЗУАЛЬНОЕ РУКОВОДСТВО
ЧИТАТЬ
8 мин
ИСТОЧНИКИ
6
ПОВТОРНО ПРОВЕРИТЬ
2027-03-27
проверено
Web performance and accessibility reviewer
КРАТКИЙ ОТВЕТ

Начните с решения.

Используйте srcset и sizes, когда одно и то же изображение отображается с разной шириной в адаптивном макете. srcset перечисляет кандидатов-изображений и их собственную (intrinsic) ширину; sizes описывает ожидаемую ширину слота изображения при каждом состоянии макета. Браузер использует эту оценку source-size вместе с плотностью дисплея, зумом и другими условиями, чтобы выбрать кандидат. Благодаря этому маленькая карточка на мобильном устройстве может избежать загрузки десктопного оригинала, а большой или дисплей с высокой плотностью пикселей может выбрать более резкий кандидат, если он доступен.

Начните с CSS-макета компонента, а не со списка устройств. Измерьте слот на каждом breakpoint, сгенерируйте правдивые кандидаты и сделайте sizes отражающим этот слот. Используйте дескрипторы плотности (x) только для фиксированного CSS-слота. Используйте picture, когда на меньшем экране нужна иная композиция (crop), а не просто меньший файл. Проверяйте фактический запрос через Empty Cache And Hard Reload. Такая проактивная оптимизация доставки сокращает избыточную передачу изображений до релиза, но не гарантирует скорость, доступность или надежность хоста изображений.

ВИЗУАЛЬНОЕ РУКОВОДСТВО

Видеть работу как систему.

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

SIUУскорить
01Выберите правильный шаблон
02Поймите, как sizes направляет выбор
03Получайте кандидатов из реального макета
04Используйте picture для арт‑дирекции
01

Выберите правильный шаблон

Resolution switching (переключение по разрешению) сохраняет состав изображения и предлагает несколько ширин файла. Это обычный паттерн для фото товаров, иллюстраций в статьях и карточек. Используйте дескрипторы ширины, такие как 480w или 1200w, когда отрисованная ширина меняется с макетом. Число — это реальная ширина файла в пикселях, а не цель для телефона или CSS-команда.

Density switching (переключение по плотности) обслуживает фиксированный CSS-слот, предоставляя больше исходных пикселей для дисплея с высокой плотностью. Его дескрипторы — 1x, 1.5x или 2x; он подходит для логотипа или иконки, которая стабильно, например, 160 CSS-пикселей в ширину. Не смешивайте дескрипторы ширины и плотности в одном srcset.

Fluid slot

Используйте дескрипторы w вместе с sizes, когда компонент растёт или сжимается.

Fixed slot

Используйте дескрипторы x без sizes только тогда, когда отрисованный CSS-размер стабилен.

02

Поймите, как sizes направляет выбор

При использовании дескрипторов ширины браузер оценивает sizes перед загрузкой изображения. Каждая запись сочетает необязательное медиa-условие и длину. Первое совпадающее условие задаёт source size; последний безусловный length — резервный вариант. sizes — это подсказка для выбора, а не CSS-правило.

Браузер сравнивает эту оценку source size с ширинами кандидатов, чтобы вычислить эффективную плотность (effective density), после чего может учесть плотность дисплея, зум и сетевые условия. Браузер не обязан выбирать математически ближайшее имя файла. Поставляйте правдивые кандидаты и достоверную оценку слота; окончательное решение остаётся за пользовательским агентом.

Порядок имеет значение

Побеждает первое совпавшее медиa-условие, поэтому пишите список в порядке, где первое совпадение будет корректным.

Избегайте blanket 100vw

Карточка, занимающая одну треть ширины на десктопе, при описании как viewport-wide может вызвать выбор неоправданно большого кандидата.

03

Получайте кандидатов из реального макета

Инвентаризируйте компоненты, а не страницы. Хедер-герой, иллюстрация статьи, галерея товара, миниатюра в поиске и логотип в футере часто имеют разные ширины слотов. Для каждого запишите узкую и максимальную отрисованную ширину, соотношение сторон, поведение обрезки и видимость в начальном экране.

Генерируйте ширины вокруг значимой области слота компонента, с большим вариантом, когда детализация оправдывает рендеринг в высокой плотности. Почти идентичные файлы увеличивают сложность сборки и кэширования; только очень маленький и очень большой файл заставляют идти на компромисс. Тестируйте сгенерированные URL, а не предполагайте, что трансформации изображений работают.

Держите валидный src-фолбэк и значения width и height, которые соответствуют доставляемому соотношению сторон. Они резервируют пространство, но не препятствуют отзывчивому CSS менять финальные размеры.

Правдивые дескрипторы

Кандидат, заявленный как 800w, должен действительно быть 800 пикселей в ширину.

Контракт компонента

Поддерживайте план слота и кандидатов вместе с изменениями шаблона и дизайна.

04

Используйте picture для арт‑дирекции

Арт‑дирекция меняет композицию, а не только размер файла. Широкая пейзажная фотография может потребовать более плотного портретного кропа на узком экране, чтобы основной объект оставался видимым. Элемент picture может предложить медиa-специфичные варианты source, а затем один img в качестве фолбэка. Браузер учитывает media, type и srcset каждой source-записи; img несёт альтернативный текст, размеры и поведение фолбэка.

Подготовьте каждый кроп с редакционным и доступностным (accessibility) обзором. Мобильный кроп может убрать деталь продукта или человека, упомянутого в alt. Помещайте alt на img и описывайте информацию или функцию, которую передаёт изображение. Используйте alt="" только для действительно декоративного изображения; для изображений-ссылок или кнопок опишите действие, а не внешний вид. Не вводите picture, если композиция не меняется: обычный srcset по ширине проще.

Хорошее использование

Загруженный десктопный герой с множеством деталей нуждается в отдельном портретном кропе для телефона.

Форматные источники

source в picture может указать type и сохранить функционально пригодный img-фолбэк.

05

Избегайте дорогостоящих ошибок загрузки и разметки

Частая трата — копировать sizes="100vw" во все изображения. Это может подходить для узкой полноширинной фигуры, но не для ограниченного контейнера или карточки на десктопе. Обратная ошибка — устаревшие sizes после редизайна. Меняйте CSS и sizes вместе.

Не лениво‑загружайте (lazy-load) изображение, важное в первоначально видимом контенте. Рекомендации советуют lazy-loading для изображений ниже фолда и оставлять видимый герой eager. Fetch priority может повысить приоритет действительно критичного изображения, но широкое применение high-priority или preload может повредить производительности. Не полагайтесь на имена файлов или кэш как на доказательство.

Регрессия при холодном кэше

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

Текст в изображениях

Не делайте важный текст на странице зависимым только от арт‑директного кропа.

06

Тестируйте запрос, кроп и исправление

Тестируйте репрезентативные страницы при ширинах, которые меняют макет, включая значения чуть выше и ниже breakpoint сетки. Включите настройку высокой плотности, широкий десктоп и состояния, которые изменяют слот. Подтвердите отрисованные размеры, кроп, альтернативный текст и визуальную резкость.

В Chrome DevTools откройте Network, перезагрузите с отключённым кэшем или используйте Empty Cache And Hard Reload, отфильтруйте запросы изображений и исследуйте URL, размер передачи, заголовки, initiator и тайминги. Ограничьте канал (throttle), чтобы выявить позднюю или избыточную работу. Запишите viewport, device scale factor, слот, кандидат, переданные байты и ожидаемый результат.

Когда шаблон, breakpoint, CDN или конвейер ассетов меняется, делайте это условием релиза. Исправляйте узко: корректируйте sizes, фиксируйте дескриптор, регенерируйте кроп, восстанавливайте фолбэк или удаляйте ненужный preload. Повторно тестируйте через Empty Cache And Hard Reload.

Наблюдайте, а не делайте выводы

Панель Network фиксирует кандидат, который был реально запрошен.

Материальное ограничение

Это проверяет поведение доставки изображений, а не пропускную способность origin, доступность CDN или общую работоспособность.

07

Примените это как контроль устойчивости SIU

Адаптивные изображения сокращают избыточную передачу, но не могут гарантировать успешный запрос. Ошибки origin, недоступные трансформации, сторонние хосты и сбои CDN требуют отдельного планирования непрерывности и восстановления.

Для SIU используйте тестовые записи, чтобы рано обнаруживать регрессии доставки, идентифицировать ответственный шаблон или правило трансформации и вносить минимально безопасное исправление перед запуском. Сопроводите это предусмотром доступности и планом отката.

Ответственность

Назначьте владельца компонента и конвейера изображений для каждой неудачной проверки выбора.

ДЕЙСТВИЕ / ПРОВЕРКА

Практический чек‑лист

  1. 01

    Классифицируйте каждый компонент

    Отметьте его как fluid, fixed-slot, art-directed, decorative, functional или critical visible content.

    ПРОВЕРИТЬ: Записи инвентаризации содержат диапазон слота, правило кропа и владельца.
  2. 02

    Измерьте слоты

    Проинспектируйте production-like сетку в узких, средних и широких состояниях.

    ПРОВЕРИТЬ: Записанные CSS-ширины коробок включают ограничения, отступы и сайдбары.
  3. 03

    Выберите дескрипторы

    Используйте w с sizes для fluid-слотов или x для фиксированных; не смешивайте их.

    ПРОВЕРИТЬ: Каждый srcset использует один тип дескрипторов.
  4. 04

    Опишите sizes из CSS

    Используйте условия first-match и безусловный резерв, описывающий слот.

    ПРОВЕРИТЬ: Совпадающее значение правдоподобно для каждого тестируемого viewport.
  5. 05

    Проверьте ассеты

    Убедитесь, что каждый кандидат существует и соответствует заявленной собственной ширине.

    ПРОВЕРИТЬ: Прямые запросы возвращают ожидаемые файлы и валидный фолбэк.
  6. 06

    Зарезервируйте пространство

    Укажите совпадающие значения width и height и отзывчивый CSS, сохраняющий пропорции.

    ПРОВЕРИТЬ: При появлении изображения не происходит ненужного смещения окружающего контента.
  7. 07

    Проверьте арт‑дирекцию

    Проверьте каждый медиа‑специфичный кроп и alt у img.

    ПРОВЕРИТЬ: Важные объекты остаются видимыми, а альтернативный текст точен.
  8. 08

    Устанавливайте приоритет осознанно

    Lazy-load для изображений ниже фолда; избегайте широкого использования high-priority и preload.

    ПРОВЕРИТЬ: Настоящий видимый герой запрашивается оперативно без ненужной конкуренции.
  9. 09

    Зафиксируйте доказательства при холодном кэше

    Используйте фильтрацию изображений в DevTools, перезагрузки с отключённым кэшем и репрезентативные viewport'ы.

    ПРОВЕРИТЬ: Доказательства релиза фиксируют выбранного кандидата, слот, размер передачи и кроп.
  10. 10

    Планируйте исправления

    Назначьте целевое исправление или откат для изменений шаблонов и конвейера изображений.

    ПРОВЕРИТЬ: У каждой ошибки есть владелец и успешный пост‑фикc тест при холодном кэше.
ВОПРОСЫ ДЛЯ ОБСУЖДЕНИЯ

Сравнивайте компромиссы, а не приватные данные.

Используйте эти вопросы с вашей командой или сообществом владельцев сайтов. Делитесь методами и уроками, но никогда не вставляйте учётные данные, данные клиентов или непубличные детали инфраструктуры.

  1. 01

    Какой компонент на вашем сайте имеет наибольший разрыв между загружаемыми пикселями и обычным отрисованным слотом, и как вы могли бы измерить это безопасно?

  2. 02

    Как ваши дизайнеры, владельцы CMS и фронтенд‑команда решают, когда мобильный кроп — это арт‑дирекция, а не просто изменение размера?

  3. 03

    Какие доказательства сделали бы регрессию адаптивных изображений лёгкой для одобрения или отката в процессе релиз‑ревью без раскрытия данных пользователей?

ПОПУЛЯРНЫЕ / АВТОРИТЕТНЫЕ РЕСУРСЫ

Откройте исходные материалы.

WHATWGImages in the HTML Standard ↗

Основные правила для дескрипторов, выбора source-size, фолбэков и поведения браузера.

Проверено 2026-09-27
MDN Web DocsUsing responsive images in HTML ↗

Практическое руководство по srcset, sizes, переключению по плотности, арт‑дирекции и тестированию.

Проверено 2026-09-27
web.devResponsive images ↗

Рекомендации Google по размерам, загрузке, дескрипторам и ограничениям макета.

Проверено 2026-09-27
MDN Web Docspicture HTML picture element ↗

Справочник по выбору media и type, арт‑дирекции, sizes и фолбэкам.

Проверено 2026-09-27
Chrome for DevelopersInspect network activity ↗

Инструкции по запросам, передачам, ограничению полосы (throttling), фильтрации и Empty Cache And Hard Reload.

Проверено 2026-09-27
W3C Web Accessibility InitiativeImages Tutorial ↗

Руководство по значимым, декоративным, функциональным и текстовым изображениям.

Проверено 2026-09-27

Политика источников. Утверждения о синтаксисе адаптивных изображений и выборе браузера основаны на официальных стандартах и документации, перечисленных ниже. Проверяйте разметку, ширины кандидатов и отрисованный макет в реальных шаблонах сайта перед релизом.

КРАТКИЕ УТОЧНЕНИЯ

Частые вопросы.

Нужно ли всегда использовать sizes при применении srcset?

Используйте sizes с дескрипторами ширины, потому что браузеру нужна оценка source-size для fluid-слота. Фиксированный density-srcset использует дескрипторы x и не требует sizes. Никогда не смешивайте оба типа дескрипторов в одном наборе источников.

Изменяет ли sizes CSS‑ширину изображения?

Нет. sizes — подсказка для выбора до загрузки. CSS и макет компонента определяют отрисованную коробку, поэтому sizes нужно поддерживать при любом изменении этого макета.

Должен ли каждый адаптивный образ использовать picture?

Нет. Используйте srcset по ширине, когда композиция не меняется при разных размерах. Используйте picture, когда по медиа‑условию нужен иной кроп или source в специфическом формате, при этом сохраняя пригодный img‑фолбэк.

Status Is UP Editorial Team · Uptime Enablement Editors

Проверено Web performance and accessibility reviewer. Опубликовано 2026-09-27; обновлено 2026-09-30.