< css‎ | properties
Jump to: navigation, search


This article is Ready to Use.

W3C Candidate Recommendation


The object-fit property defines how content of a replaced element (e.g., a video or an image) is made to fit the dimensions of its containing box.

Overview table

Initial value fill
Applies to Replaced elements
Inherited No
Media visual
Computed value As specified
Animatable No
CSS Object Model Property objectFit


  • object-fit: contain
  • object-fit: cover
  • object-fit: fill
  • object-fit: none
  • object-fit: scale-down


The replaced content is sized to fill the element's box
The replaced content is sized to maintain its aspect ratio while fitting within the element's content box
The replaced content is sized to maintain its aspect ratio while filling the element's entire content box
The replaced content is not resized to fit inside the element's content box
Size the content as if ‘none’ or ‘contain’ were specified, whichever would result in a smaller concrete object size


There is no data available for topic "css", feature "object-fit". If you think that there should be data available, consider opening an issue.


Five simple img elements.


<html lang="en-US">
  <meta charset="UTF-8">
  <title>Object-fit example</title>
  <link href="content-fit.css" type="text/css" rel="stylesheet">

  <img src="http://www.webplatform.org/logo/wplogo_pillow_wide_tan.png" 
      alt="Webplatform Logo" class="fill"/>
  <img src="http://www.webplatform.org/logo/wplogo_pillow_wide_tan.png" 
      alt="Webplatform Logo" class="contain"/>
  <img src="http://www.webplatform.org/logo/wplogo_pillow_wide_tan.png" 
      alt="Webplatform Logo" class="cover"/>
  <img src="http://www.webplatform.org/logo/wplogo_pillow_wide_tan.png" 
      alt="Webplatform Logo" class="none"/>
  <img src="http://www.webplatform.org/logo/wplogo_pillow_wide_tan.png" 
      alt="Webplatform Logo" class="scale-down"/>


View live exampleAll five images are forced to 150x100 pixels, different from both the original size of the image (196x77 pixel) and its aspect ratio.


img {
  float: left;
  width: 150px;
  height: 100px;
  border: 1px solid #000;
  margin-right: 1em;
.fill {
  object-fit: fill;
    * This is the default behaviour.
    * The image is forced to fill the whole box, 
    * the aspect ratio is ignored. 
.contain {
  object-fit: contain;
    * The whole image will be displayed in the box 
    * and scaled down or expanded if necessary.
    * The aspect ratio is maintained. 
.cover {
  object-fit: cover;
    * The whole image is scaled down or expanded till 
    * it fills the box completely, the aspect ratio is 
    * maintained. This normally results in only part of
    * the image being visible. 
.none {
  object-fit: none;
    * The image keeps it's original size. 
    * This may result in not filling the box 
    * completely or sticking out of it. 
.scale-down {
  object-fit: scale-down;
    * The result of 'none' and 'contain' is compared
    * and the smaller concrete object is displayed. 

Related specifications

Specification Status Related Changes
CSS Image Values and Replaced Content Module Level 3 W3C Candidate Recommendation

See also

Related articles

Generated and Replaced Content

  • object-fit


  • object-fit


  • object-fit