object-fit

Управляет соотношением сторон заменяемых элементов, таких как <img> и <video>, когда у них задана ширина или высота, а также способом масштабирования. Свойство object-fit может сохранять исходные пропорции элемента или наоборот, искажать пропорции, в угоду соблюдения размеров.

Краткая информация

Значение по умолчанию fill
Наследуется Нет
Применяется К <img>, <video>, <object>, <input type="image">
Анимируется Нет

Синтаксис

object-fit: fill | contain | cover | none
Описание Пример
<тип> Указывает тип значения. <размер>
A && B Значения должны выводиться в указанном порядке. <размер> && <цвет>
A | B Указывает, что надо выбрать только одно значение из предложенных (A или B). normal | small-caps
A || B Каждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке. width || count
[ ] Группирует значения. [ crop || cross ]
* Повторять ноль или больше раз. [,<время>]*
+ Повторять один или больше раз. <число>+
? Указанный тип, слово или группа не является обязательным. inset?
{A, B} Повторять не менее A, но не более B раз. <радиус>{1,4}
# Повторять один или больше раз через запятую. <время>#

Значения

fill
Элемент масштабируется, чтобы соответствовать заданным размерам, при этом пропорции игнорируются.
contain
Элемент масштабируется, чтобы целиком уместиться в заданные размеры с соблюдением пропорций.
cover
Элемент увеличивается или уменьшается, чтобы целиком заполнить заданную область с сохранением пропорций.
none
Сохраняются исходные пропорции элемента, установленные значения ширины или высоты не влияют на содержимое.

Влияние разных значений на фотографии продемонстрировано на рис. 1. Был использован следующий стиль.

img { 
  background: #ccc; overflow: hidden; 
  width: 200px; height: 200px; 
}

Исходные изображения

fill

contain

cover

none

Рис. 1. Фотографии с разным значением object-fit

Песочница

img {
  width: 100%; 
  height: 200px;
  object-fit: {{ playgroundValue }};
}

Пример

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>object-fit</title> <style> .dolphin img { object-fit: cover; height: 400px; width: 300px; } </style> </head> <body> <p class="dolphin"><img src="image/dolphin.jpg" alt="Дельфин"></p> </body> </html>

Объектная модель

Объект.style.objectFit

Примечание

Edge поддерживает object-fit только для <img>.

Opera до версии 19 поддерживает свойство -o-object-fit.

Спецификация

Спецификация Статус
CSS Image Values and Replaced Content Module Level 4 Рабочий проект
CSS Image Values and Replaced Content Module Level 3 Возможная рекомендация

Браузеры

16 31 10.60 19 7.1 36
4.4.4 36 11.5 24 8

В таблице браузеров применяются следующие обозначения.

  • — элемент полностью поддерживается браузером;
  • — элемент браузером не воспринимается и игнорируется;
  • — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

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