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» показан на минимальном фрагменте без внешнего фреймворка. Сначала запустите исходный вариант, затем меняйте отмеченную часть.
.demo {
object-fit: normal;
}Как работает 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 без связанных ограничений может дать другой результат в реальном компоненте — это предметный риск для «object-fit».
Поддержка
Отсутствие запасного поведения при неподдерживаемой возможности при использовании «object-fit».
Контекст
Смешивание данных, оформления и поведения в одной хрупкой конструкции; для «object-fit» проверьте это отдельно.
Поддержка object-fit
Для «object-fit» таблица собрана из закреплённой версии MDN Browser Compatibility Data. Указанная версия браузера показывает первое заявленное появление базовой поддержки «object-fit»; окончательное решение принимайте по аудитории конкретного проекта.
Спецификация: источник 1.
Вопросы о object-fit
Как понять, что «object-fit» выбрано правильно?
«object-fit» выбрано правильно, когда оно решает задачу «настраивать отображение маркеров, изображений или генерируемых фрагментов», сохраняет результат в форме, где часть полей становится недоступной и проходит предметную проверку: проверьте вычисленное значение object-fit, наследование и контекст родителя.
Нужен ли запасной вариант для «object-fit»?
Запасной вариант для «object-fit» нужен, если целевой браузер или режим не обеспечивает выбранное поведение. Без улучшения «object-fit» должно сохранять смысл, содержимое и основное действие.
Спецификации и источники
Синтаксис и статус проверяются по HTML Living Standard, спецификациям CSS и MDN Browser Compatibility Data. Примеры и объяснения подготовлены для этого сервиса.