object-fit | CSS | WebReference

Управляет соотношением сторон заменяемых элементов, таких как <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

Песочница

fill contain cover none

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><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
Возможная рекомендация
Спецификация

Каждая спецификация проходит несколько стадий одобрения.

  • Recommendation (Рекомендация) — спецификация одобрена W3C и рекомендована как стандарт.
  • Candidate Recommendation (Возможная рекомендация) — группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
  • Proposed Recommendation (Предлагаемая рекомендация) — на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
  • Working Draft (Рабочий проект) — более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
  • Editor’s draft (Редакторский черновик) — черновая версия стандарта после внесения правок редакторами проекта.
  • Draft (Черновик спецификации) — первая черновая версия стандарта.

Браузеры

163110.60197.136
4.4.43611.5248
Браузеры

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

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

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

См. также

  • Масштабирование картинок

object-fit CSS уроки для начинающих академия

HTML5CSS.ru

ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ

❮ Назад Дальше ❯


Свойство CSS

object-fit используется для указания того, как <img> или <Video> следует изменить размер в соответствии с его контейнером.


Поддержка браузера

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

Свойство
object-fit31. 016.036.07.119.0


Свойство объекта CSS-Fit

Свойство CSS object-fit используется для указания способа изменения размера <img> или <Video> в соответствии с его контейнером.

Это свойство указывает содержимому заполнять контейнер различными способами; Например, «сохранить это соотношение сторон» или «растянуть и занять столько места, сколько возможно».

Посмотрите на следующее изображение из Парижа, которое является 400кс300 пикселей:

Однако, если мы стиль изображения выше, чтобы быть 200кс400 пикселей, он будет выглядеть так:

Пример

img {

    width: 200px;
    height: 400px;
}

Мы видим, что изображение сжимается в соответствии с контейнером 200кс400 пикселей, и его исходное соотношение сторон уничтожается.

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

Пример

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



Другой пример

Здесь мы имеем 2 изображения и мы хотим их заполнить ширину 50% из окна браузера и 100% из высоты.

В следующем примере мы не используем object-fit, поэтому при изменении размера окна браузера, пропорции изображений будут уничтожены:

Пример


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

Пример



Все значения свойства объекта CSS-Fit

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

  • fill — Это значение по умолчанию. Заменяемое содержимое задается для заполнения поля содержимого элемента. При необходимости объект будет растягиваться или сжиматься по размеру
  • contain — Заменяемое содержимое масштабируется для сохранения его пропорций при установке в поле содержимого элемента
  • cover — Заменяемое содержимое имеет размер, чтобы сохранить его пропорции при заполнении всего содержимого поля элемента. Объект будет обрезан по размеру
  • none — Заменяемое содержимое не изменено
  • scale-down — Размер содержимого определяется так, как если бы не было указано ни одного, ни содержащего, (что привело бы к уменьшению размера конкретного объекта)

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

Пример

. fill {object-fit: fill;}

.contain {object-fit: contain;}
.cover {object-fit: cover;}
.scale-down {object-fit: scale-down;}
.none {object-fit: none;}

❮ Назад Дальше ❯

Популярное CSS

css текст
блоки css
css картинки
как сделать css
цвета css
шрифты css
css стили
елементы css
фон css
кнопки css
таблица css
размер css
ссылки css
изображение css
выравнивание css
внешние отступы css
внутренние отступы css
списки css
css ширина
css при наведении
css формы



Copyright 2018-2020 HTML5CSS.ru

Правила и Условия Политика конфиденциальности О нас Контакты

объектов | CSS-трюки — CSS-трюки

DigitalOcean предоставляет облачные продукты для каждого этапа вашего путешествия. Начните с бесплатного кредита в размере 200 долларов США!

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

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

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

Вот как мы можем установить это свойство:

 img {
  высота: 120 пикселей;
}
.крышка {
  ширина: 260 пикселей;
  объект подходит: обложка;
} 

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

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

Демонстрация

В приведенной ниже демонстрации показаны пять примеров, подробно описывающих, как мы можем захотеть втиснуть изображение в поле содержимого, которое иногда меньше или больше его исходной ширины (измените размер браузера, чтобы лучше понять, как это может работать):

См. подборку объекта Pen Робина Рендла (@robinrendle) на CodePen.

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

Связанные свойства

  • объект-позиция

Прочие ресурсы

  • соответствие объекту W3C
  • объект подходит для MDN
  • полифилл

Поддержка браузера

Стоит отметить, что iOS 8-9.3 и Safari 7-9.1 подходят для объектов свойство, но не объект-позиция .

Рабочий стол
Chrome Firefox IE Edge Safari
32 36 79 10

Мобильный/Планшет
9- CSS: обложка объекта не центрирует изображение

спросил

Изменено 11 месяцев назад

Просмотрено 2к раз

Я пытаюсь создать сетку миниатюр, которая будет использоваться в основном на мобильных устройствах.

Размер изображения неизвестен: оно получено с входа, а размер зависит от камеры мобильного телефона. Так что я заранее не знаю, будет ли фотография альбомной или портретной . Таким образом, стиль обеих миниатюр должен быть одинаковым.

Для пейзажного изображения я хочу, чтобы оно отображалось в полный рост и располагалось по центру по горизонтали. Для портретного изображения я хочу показать всю ширину изображения и центрировать его по вертикали.

 ЛАНДШАФТНОЕ ИЗОБРАЖЕНИЕ ПОРТРЕТНОЕ ИЗОБРАЖЕНИЕ
                            +++++++
                            + +
                            + +
++++++=======++++++ =======
+ ======= + =======
+ ======= + =======
+ ======= + =======
+ ======= + =======
++++++=======++++++ =======
                            + +
                            + +
                            +++++++
== = фактическая миниатюра = часть полного изображения, которая будет показана
+ = полный размер изображения
 

Я думаю, подходит для объекта: крышка; подойдет лучше всего.

Это работает для пейзажного изображения (см. код: мужчины справа не видны, чего и следовало ожидать)

К сожалению, это не работает для портретного изображения. Ширина правильно масштабируется до ширины большого пальца, но изображение не центрировано по вертикали. (см. codepen: верх здания все еще виден, а человек впереди исчез. Чего я ожидал, так это того, что верх здания больше не виден, а голова человека полностью видна. Я мог бы исправить это с помощью перевода, но то тот же код не будет работать с портретом.

См. codepen, используя Tailwind https://codepen.io/pasdut/pen/MWbzvzX

Обновление: я не знаю заранее, будет ли изображение портретным или альбомным 2 Если дать портретное изображение height: 100% будет центрировать изображение по горизонтали и вертикали в своем контейнере в паре с object-fit: cover . Вам просто нужно добавить класс h-full попутного ветра на миниатюру #2 элемент, чтобы он имел height: 100% .

 <изображение
  src="https://dummyimage.com/400x900/472647/ffff00&text=портрет+изображение">
 

3

Я не использую Tailwind, поэтому я просто дам вам работающий код.

 .портрет {
    высота: 100% !важно;
    минимальная ширина: 100%;
    объект подходит: обложка;
}
 

На втором изображении удалите все, что там есть, и используйте класс «portrait». Это действительно сработало для первого изображения, если это тот эффект, который вам нужен.

1

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Android Chrome Android Firefox Android iOS Safari