Перейти к содержимому

CSS свойство object-fit

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

Свойство object-fit позволяет вписать содержимое изображения в размеры, указанные в таблице стилей.

С помощью значений свойства содержимое можно настроить на увеличение или уменьшение, сжатие или растяжение, чтобы оно соответствовало заданной ширине и высоте. Существует пять значений:

  • fill
  • contain
  • cover
  • none
  • scale-down
Начальное значениеfill
Применяется кЗаменяемые элементы.
НаследуетсяНет.
АнимацияНет.
ВерсияCSS3
Синтаксис DOMobject.style.objectFit = "cover";

Синтаксис

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

css
object-fit: fill | contain | cover | scale-down | none | initial | inherit;

Пример использования свойства object-fit со значением «fill»:

Пример использования свойства object-fit со значением «fill»:

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      img.tree {
        width: 200px;
        height: 400px;
        object-fit: fill;
      }
    </style>
  </head>
  <body>
    <h2>Object-fit property example</h2>
    <h3>Original image:</h3>
    <img src="https://ru.w3docs.com/uploads/media/default/0001/01/b408569013c0bb32b2afb0f0d45e93e982347951.jpeg" alt="Tree" width="300" height="200" />
    <h3>Fill value:</h3>
    <img class="tree" src="https://ru.w3docs.com/uploads/media/default/0001/01/b408569013c0bb32b2afb0f0d45e93e982347951.jpeg" alt="Tree" width="300" height="200" />
  </body>
</html>

Результат

CSS object-fit cover

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

Пример использования свойства object-fit со значением «cover»:

Пример использования свойства object-fit со значением «cover»:

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      img.tree {
        width: 200px;
        height: 400px;
        object-fit: cover;
      }
    </style>
  </head>
  <body>
    <h2>Object-fit property example</h2>
    <h3>Original image:</h3>
    <img src="https://ru.w3docs.com/uploads/media/default/0001/01/b408569013c0bb32b2afb0f0d45e93e982347951.jpeg" alt="Tree" width="300" height="200" />
    <h3>Cover value:</h3>
    <img class="tree" src="https://ru.w3docs.com/uploads/media/default/0001/01/b408569013c0bb32b2afb0f0d45e93e982347951.jpeg" alt="Tree" width="300" height="200" />
  </body>
</html>

В следующем примере изображение со примененным значением сохраняет пропорции оригинального изображения.

Пример использования свойства object-fit со значением «contain»:

Пример использования свойства object-fit со значением «contain»:

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      img.tree {
        width: 200px;
        height: 400px;
        object-fit: contain;
      }
    </style>
  </head>
  <body>
    <h2>Object-fit property example</h2>
    <h3>Original image:</h3>
    <img src="https://ru.w3docs.com/uploads/media/default/0001/01/b408569013c0bb32b2afb0f0d45e93e982347951.jpeg" alt="Tree" width="300" height="200" />
    <h3>Contain value:</h3>
    <img class="tree" src="https://ru.w3docs.com/uploads/media/default/0001/01/b408569013c0bb32b2afb0f0d45e93e982347951.jpeg" alt="Tree" width="300" height="200" />
  </body>
</html>

В нашем последнем примере примененное значение устанавливает изображение в меньшем размере, как если бы были указаны «contain» или «none».

Пример использования свойства object-fit со значением «scale-down»:

Пример CSS object-fit scale-down

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      img.tree {
        width: 200px;
        height: 400px;
        object-fit: scale-down;
      }
    </style>
  </head>
  <body>
    <h2>Object-fit property example</h2>
    <h3>Original image:</h3>
    <img src="https://ru.w3docs.com/uploads/media/default/0001/01/b408569013c0bb32b2afb0f0d45e93e982347951.jpeg" alt="Tree" width="300" height="200" />
    <h3>Scale-down value:</h3>
    <img class="tree" src="https://ru.w3docs.com/uploads/media/default/0001/01/b408569013c0bb32b2afb0f0d45e93e982347951.jpeg" alt="Tree" width="300" height="200" />
  </body>
</html>

Значения

ЗначениеОписание
fillКонтент изменяется по размеру, чтобы максимально заполнить область содержимого. Это значение по умолчанию для данного свойства.
containПропорции контента масштабируются максимально, оставаясь в пределах границ элемента.
coverПропорции контента изменяются так, чтобы заполнить область содержимого элемента. Изображение будет обрезано, чтобы соответствовать области содержимого.
noneКонтент не изменяется по размеру.
scale-downАналогично значениям none или contain. Контент элемента будет отображаться в меньшем размере.
initialЗаставляет свойство использовать значение по умолчанию.
inheritНаследует свойство от родительского элемента.

Практика

Какие допустимые значения может принимать свойство 'object-fit' в CSS?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.