В object-fit
собственности определяет , как элемент реагирует на высоту и ширину его содержимого коробки. Он предназначен для изображений, видео и других встраиваемых мультимедийных форматов вместе с object-position
собственностью. Используемый сам по себе, object-fit
позволяет нам обрезать встроенное изображение, давая нам детальный контроль над тем, как оно сжимается и растягивается внутри своего поля.
object-fit
можно задать одно из этих пяти значений:
fill
: это значение по умолчанию, которое растягивает изображение до размера поля содержимого, независимо от его соотношения сторон.contain
: увеличивает или уменьшает размер изображения, чтобы заполнить поле, сохраняя его соотношение сторон.cover
: изображение будет заполнять высоту и ширину своего поля, снова сохраняя его соотношение сторон, но часто в процессе обрезая изображение.none
: image проигнорирует высоту и ширину родительского элемента и сохранит исходный размер.scale-down
: изображение сравнивает разницу междуnone
иcontain
для определения наименьшего размера конкретного объекта.
Вот как мы можем установить это свойство:
img ( height: 120px; ) .cover ( width: 260px; object-fit: cover; )
Поскольку второе изображение имеет соотношение сторон, отличное от исходного изображения слева, оно будет растягиваться за пределы области своего содержимого, обрезая верхнюю и нижнюю части изображения.
Стоит отметить, что по умолчанию изображение центрируется в поле содержимого, но это можно изменить с помощью object-position
свойства.
Демо
В приведенной ниже демонстрации показаны пять примеров, в которых подробно описывается, как мы можем захотеть, чтобы изображение сжималось в поле содержимого, которое иногда меньше или больше его исходной ширины (измените размер браузера, чтобы лучше понять, как это может работать):
См. Подборку объекта Pen Робина Рендла (@robinrendle) на CodePen.
Если содержимое изображения не заполняет поле содержимого по какой-либо причине, тогда в незаполненном пространстве будет отображаться фон элемента, в данном случае светло-серый фон.
Поддержка браузера
Стоит отметить, что iOS 8-9.3 и Safari 7-9.1 в object-fit
собственности, но не в собственности object-position
.
Эти данные о поддержке браузером взяты из Caniuse, где есть более подробная информация. Число означает, что браузер поддерживает эту функцию в этой версии и выше.
Рабочий стол
Хром | Fire Fox | IE | Край | Сафари |
---|---|---|---|---|
32 | 36 | Нет | 79 | 10 |
Мобильный / планшет
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 4.4.3-4.4.4 | 10,0-10,2 |