Пример использования Object Fit и Object Position в CSS

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

Что такое Object Fit в CSS

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

warning icon

Это свойство очень полезно при работе с адаптивными макетами и изображениями разных размеров и пропорций.

Значения object-fit

Свойство object-fit может принимать следующие значения:

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

Пример использования Object Fit 

Если у вас есть блок с фиксированной высотой и шириной, и вы хотите вставить в него изображение так, чтобы оно максимально заполняло блок, сохраняя пропорции и оставляя видимой самую эффектную часть изображения, вы можете использовать object-fit: cover:

img {
    width: 300px;
    height: 200px;
    object-fit: cover;
}

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

warning icon

Обратите внимание, что object-fit работает в связке с width и height. Без указания этих параметров, object-fit не будет иметь видимого эффекта.

Далее расмотрим такое свойство как object-position. Это свойство позволяет выполнять более детальный контроль над положением масштабируемых изображений или видео.

Что такое Object Position в CSS

Свойство CSS object-position определяет положение (координаты x и y) внешнего содержимого, такого как изображение или видео, в рамках элемента. 

warning icon

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

Значения object-position соответствуют значениям свойства background-position. Два значения, указанные в процентах или пикселях, соответствуют позиции по горизонтали (x) и вертикали (y) соответственно. Если указано только одно значение, второе значение по умолчанию устанавливается в 50%.

Значения object-position

  • object-position: 0 0; задаст изображению точку привязки в верхний левый угол его контейнера (в процентах или пикселях). 
  • object-position: 50% 50%; (значение по умолчанию) ориентирует изображение так, что его центр соответствует центру его контейнера.

Пример использования Object Position

Давайте предположим, что у вас есть квадратный контейнер, а внутри него — прямоугольное изображение. Вы используете object-fit: cover; чтобы обеспечить максимальное заполнение контейнера без искажения изображения. Но вам нужно убедиться, что верхняя часть изображения видна, а не центр. Для этого вы можете использовать object-position, чтобы сместить точку привязки изображения к верхнему краю контейнера, например так:

img {
    object-fit: cover;
    object-position: 50% 0;
    width: 200px;
    height: 200px;
}

В этом случае, изображение масштабируется с использованием object-fit: cover;, но вместо центрирования (которое является поведением по умолчанию), верхняя часть изображения приравнивается к верхнему краю контейнера.

Оставить комментарий!