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

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

Когда <img> или <video> должен вписаться в свой контейнер, свойство CSS object-fit решает, как изменится его размер.

Вы можете выбрать одно из этих значений:

  • fill — значение по умолчанию. За счёт растягивания или сжатия изображение заполняет контейнер, а соотношение сторон теряется.
  • cover — изображение заполняет контейнер и сохраняет соотношение сторон, а всё выступающее при необходимости обрезается.
  • contain — всё изображение остаётся внутри контейнера с неизменным соотношением сторон. Ничего не обрезается, и может остаться пустое пространство.
  • none — размер не изменяется.
  • scale-down — изображение уменьшается до того из вариантов none или contain, который даёт меньшую версию.

Использование object-fit: fill;

При object-fit: fill; контейнер заполняется за счёт растягивания или сжатия изображения, а соотношение сторон теряется.

Пример

Prompt
Покажите изображение внутри контейнера 200x300px с чёрной рамкой, используя object-fit: fill;. Изображение должно растягиваться, чтобы заполнить контейнер, игнорируя пропорции.
Результат: полная HTML-страница

Использование object-fit: cover;

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

Пример

Prompt
Покажите изображение внутри контейнера 200x300px с чёрной рамкой, используя object-fit: cover;. Изображение должно заполнять контейнер, сохраняя пропорции, обрезая лишнее при необходимости.
Результат: полная HTML-страница

Использование object-fit: contain;

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

Пример

Prompt
Покажите изображение внутри контейнера 200x300px с чёрной рамкой, используя object-fit: contain;. Изображение должно вписываться в контейнер, сохраняя пропорции, оставляя пустое пространство при необходимости.
Результат: полная HTML-страница

Использование object-fit: none;

При object-fit: none; изображение сохраняет свой размер, без изменения размера и масштабирования.

Пример

Prompt
Покажите изображение внутри контейнера 200x300px с чёрной рамкой, используя object-fit: none;. Размер изображения не должен изменяться или масштабироваться.
Результат: полная HTML-страница

Использование object-fit: scale-down;

При object-fit: scale-down; изображение уменьшается до того из вариантов none или contain, который даёт меньшую версию.

Пример

Prompt
Покажите изображение внутри контейнера 200x300px с чёрной рамкой, используя object-fit: scale-down;. Изображение должно быть уменьшено до наименьшего варианта из none или contain.
Результат: полная HTML-страница

Ещё один пример

В этой раскладке каждое из двух изображений должно занимать 50% ширины браузера и 100% высоты контейнера.

Без object-fit

Измените размер браузера, и без object-fit изображения потеряют соотношение сторон.

Prompt
Покажите два изображения рядом, каждое из которых занимает 50% ширины браузера и 100% контейнера высотой 400px, не используя object-fit. Изображения должны выглядеть растянутыми/искажёнными.
Результат: полная HTML-страница

С object-fit: cover

Добавьте object-fit: cover;, и изображения сохранят соотношение сторон при изменении размера браузера.

Prompt
Покажите два изображения рядом, каждое из которых занимает 50% ширины браузера и 100% контейнера высотой 400px, используя object-fit: cover;, чтобы сохранить пропорции обоих изображений.
Результат: полная HTML-страница