CSS-свойствоВ стандарте

CSS object-fit — синтаксис и примеры

CSS-свойство object-fit: назначение, рабочее значение, влияние на раскладку или отрисовку, ошибки и поддержка браузерами.

Когда применять

Для «object-fit» важно отделить назначение от случайного оформления. Свойство object-fit относится к области «генерируемое и замещаемое содержимое» и работает в определённом контексте элемента или псевдоэлемента. При проверке в форме, где часть полей становится недоступной сначала зафиксируйте изменение при prefers-reduced-motion для «object-fit», затем фиксируйте ожидаемое состояние до открытия DevTools.

Практическое правило для object-fit

Рабочий критерий для «object-fit»: проверьте вычисленное значение object-fit, наследование и контекст родителя. Если результат «object-fit» меняется вместе с посторонним условием, пример ещё не изолирован.

Синтаксис object-fit

Синтаксис «object-fit» показан на минимальном фрагменте без внешнего фреймворка. Сначала запустите исходный вариант, затем меняйте отмеченную часть.

css
.demo {
  object-fit: normal;
}
Открыть в Playground

Как работает object-fit

Механика «object-fit» начинается с допустимого контекста и заканчивается наблюдаемым результатом. Свойство object-fit относится к области «генерируемое и замещаемое содержимое» и работает в определённом контексте элемента или псевдоэлемента; для «object-fit» отдельно проверьте изменение при prefers-reduced-motion.

Проверка в проекте

  • Проверьте вычисленное значение object-fit, наследование и контекст родителя; результат относится непосредственно к «object-fit».
  • Сравнить результат с отключёнными стилями и сохранить логичный порядок содержимого при разборе «object-fit».
  • Проверьте «object-fit» в форме, где часть полей становится недоступной через изменение при prefers-reduced-motion и запишите наблюдаемое изменение.
Выбор конструкции

Выбор «object-fit» оправдан, если задача относится к области «генерируемое и замещаемое содержимое», а риск «изолированная декларация object-fit без связанных ограничений может дать другой результат в реальном компоненте» исключён проверкой. Для «object-fit» сравнивайте не внешний вид, а результат для пользователя.

Практика с object-fit

Перенесите «object-fit» на небольшом макете и испытайте его в форме, где часть полей становится недоступной. Сначала воспроизведите правильный результат, затем намеренно добавьте риск для «object-fit»: изолированная декларация object-fit без связанных ограничений может дать другой результат в реальном компоненте.

генерируемое и замещаемое содержимоеobject-fit

Сценарий: в форме, где часть полей становится недоступной.

Ошибки при работе с object-fit

01

Каскад

Изолированная декларация object-fit без связанных ограничений может дать другой результат в реальном компоненте — это предметный риск для «object-fit».

02

Поддержка

Отсутствие запасного поведения при неподдерживаемой возможности при использовании «object-fit».

03

Контекст

Смешивание данных, оформления и поведения в одной хрупкой конструкции; для «object-fit» проверьте это отдельно.

Поддержка object-fit

Для «object-fit» таблица собрана из закреплённой версии MDN Browser Compatibility Data. Указанная версия браузера показывает первое заявленное появление базовой поддержки «object-fit»; окончательное решение принимайте по аудитории конкретного проекта.

Chromeс версии 32Edgeс версии 79Firefoxс версии 36Safariс версии 10

Спецификация: источник 1.

Вопросы о object-fit

Как понять, что «object-fit» выбрано правильно?

«object-fit» выбрано правильно, когда оно решает задачу «настраивать отображение маркеров, изображений или генерируемых фрагментов», сохраняет результат в форме, где часть полей становится недоступной и проходит предметную проверку: проверьте вычисленное значение object-fit, наследование и контекст родителя.

Нужен ли запасной вариант для «object-fit»?

Запасной вариант для «object-fit» нужен, если целевой браузер или режим не обеспечивает выбранное поведение. Без улучшения «object-fit» должно сохранять смысл, содержимое и основное действие.

Спецификации и источники

Синтаксис и статус проверяются по HTML Living Standard, спецификациям CSS и MDN Browser Compatibility Data. Примеры и объяснения подготовлены для этого сервиса.