object-fit
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since ÑнваÑÑ 2020 г..
СвойÑÑво object-fit опÑеделÑеÑ, как ÑодеÑжимое заменÑемого ÑлеменÑа, Ñакого как <img> или <video>, должно заполнÑÑÑ ÐºÐ¾Ð½ÑÐµÐ¹Ð½ÐµÑ Ð¾ÑноÑиÑелÑно его вÑÑоÑÑ Ð¸ ÑиÑинÑ.
ÐнÑеÑакÑивнÑй пÑимеÑ
object-fit: fill;
object-fit: contain;
object-fit: cover;
object-fit: none;
object-fit: scale-down;
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/proxy/developer.mozilla.org/shared-assets/images/examples/plumeria-146x200.jpg" />
</section>
#example-element {
height: 100%;
width: 100%;
border: 2px dotted #888;
}
СинÑакÑиÑ
ÐÐ»Ñ object-fit можно ÑказаÑÑ Ð¾Ð´Ð½Ð¾ из нижепеÑеÑиÑленнÑÑ
ÑвойÑÑв.
ÐнаÑениÑ
fill-
СмеÑаемÑй конÑÐµÐ½Ñ Ð¼ÐµÐ½ÑÐµÑ Ñвой ÑÐ°Ð·Ð¼ÐµÑ Ñаким обÑазом, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½Ð¸ÑÑ Ð²ÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð²Ð½ÑÑÑи блока: иÑполÑзÑеÑÑÑ Ð²ÑÑ ÑиÑина и вÑÑоÑа блока.
contain-
СмеÑаемÑй конÑÐµÐ½Ñ Ð¼ÐµÐ½ÑÐµÑ Ñвой ÑÐ°Ð·Ð¼ÐµÑ Ñаким обÑазом, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð´ÑÑÑоиÑÑÑÑ Ð¿Ð¾Ð´ облаÑÑÑ Ð²Ð½ÑÑÑи блока пÑопоÑÑионалÑно ÑобÑÑвеннÑм паÑамеÑÑам: оконÑаÑелÑнÑй ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ¾Ð½ÑенÑа бÑÐ´ÐµÑ Ð¾Ð¿ÑеделÑн как "помеÑÑннÑй внÑÑÑÑ" блока, огÑаниÑиваÑÑÑ ÐµÐ³Ð¾ ÑиÑиной и вÑÑоÑой.
cover-
СмеÑаемÑй конÑÐµÐ½Ñ Ð¼ÐµÐ½ÑÐµÑ Ñвой ÑÐ°Ð·Ð¼ÐµÑ Ñаким обÑазом, ÑÑÐ¾Ð±Ñ ÑÐ¾Ñ ÑанÑÑÑ Ñвои пÑопоÑÑии пÑи заполнении блока: оконÑаÑелÑнÑй ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ¾Ð½ÑенÑа бÑÐ´ÐµÑ Ð¾Ð¿ÑеделÑн как "покÑÑÑие" блока, огÑаниÑиваÑÑÑ ÐµÐ³Ð¾ ÑиÑиной и вÑÑоÑой.
none-
СмеÑаемÑй конÑÐµÐ½Ñ Ð½Ðµ изменÑÐµÑ Ñвой ÑÐ°Ð·Ð¼ÐµÑ Ñ ÑелÑÑ Ð·Ð°Ð¿Ð¾Ð»Ð½Ð¸ÑÑ Ð¿ÑоÑÑÑанÑÑво блока: конеÑнÑй ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ¾Ð½ÑенÑа бÑÐ´ÐµÑ Ð¾Ð¿ÑеделÑн Ñ Ð¸ÑполÑзованием алгоÑиÑма Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑазмеÑа по ÑмолÑаниÑ, а Ñакже ÑÐ°Ð·Ð¼ÐµÑ Ð¾Ð±ÑекÑа по ÑмолÑÐ°Ð½Ð¸Ñ Ñавен ÑиÑине и вÑÑоÑе ÑмеÑаемого конÑенÑа.
scale-down-
ÐонÑÐµÐ½Ñ Ð¸Ð·Ð¼ÐµÐ½ÑÐµÑ ÑазмеÑ, ÑÑÐ°Ð²Ð½Ð¸Ð²Ð°Ñ ÑазниÑÑ Ð¼ÐµÐ¶Ð´Ñ
noneиcontain, Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð½Ð°Ð¹Ñи наименÑÑий конкÑеÑнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¾Ð±ÑекÑа.
ÐÑавилÑнÑй ÑинÑакÑиÑ
object-fit =
fill |
none |
[ contain | cover ] || scale-down
ÐÑимеÑ
>HTML ÐонÑенÑ
<div>
<h2>object-fit: fill</h2>
<img src="mdn_logo_only_color.png" alt="MDN Logo" class="fill" />
<img src="mdn_logo_only_color.png" alt="MDN Logo" class="fill narrow" />
<h2>object-fit: contain</h2>
<img src="mdn_logo_only_color.png" alt="MDN Logo" class="contain" />
<img src="mdn_logo_only_color.png" alt="MDN Logo" class="contain narrow" />
<h2>object-fit: cover</h2>
<img src="mdn_logo_only_color.png" alt="MDN Logo" class="cover" />
<img src="mdn_logo_only_color.png" alt="MDN Logo" class="cover narrow" />
<h2>object-fit: none</h2>
<img src="mdn_logo_only_color.png" alt="MDN Logo" class="none" />
<img src="mdn_logo_only_color.png" alt="MDN Logo" class="none narrow" />
<h2>object-fit: scale-down</h2>
<img src="mdn_logo_only_color.png" alt="MDN Logo" class="scale-down" />
<img src="mdn_logo_only_color.png" alt="MDN Logo" class="scale-down narrow" />
</div>
CSS ÐонÑенÑ
h2 {
font-family:
Courier New,
monospace;
font-size: 1em;
margin: 1em 0 0.3em;
}
div {
display: flex;
flex-direction: column;
flex-wrap: wrap;
align-items: flex-start;
height: 940px;
}
img {
width: 150px;
height: 100px;
border: 1px solid #000;
}
.narrow {
width: 100px;
height: 150px;
margin-top: 10px;
}
.fill {
object-fit: fill;
}
.contain {
object-fit: contain;
}
.cover {
object-fit: cover;
}
.none {
object-fit: none;
}
.scale-down {
object-fit: scale-down;
}
РезÑлÑÑаÑ
Ð¢ÐµÑ Ð½Ð¸ÑеÑкие паÑамеÑÑÑ
| Specification |
|---|
| CSS Images Module Level 3> # the-object-fit> |
| ÐаÑалÑное знаÑение | fill |
|---|---|
| ÐÑименÑеÑÑÑ Ðº | заменÑемÑе ÑлеменÑÑ |
| ÐаÑледÑеÑÑÑ | Ð½ÐµÑ |
| ÐбÑабоÑка знаÑÐµÐ½Ð¸Ñ | как Ñказано |
| Animation type | discrete |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
- ÐÑÑгие ÑвойÑÑва CSS, ÑвÑзаннÑе Ñ Ð¸Ð·Ð¾Ð±ÑажениÑми (каÑÑинками):
object-position,image-orientation,image-rendering,image-resolution. background-size