Object fit helps images or videos fill their container nicely without stretching or cutting off important parts.
Object fit in CSS
Start learning this pattern below
Jump into concepts and practice - no test required
object-fit: fill | contain | cover | none | scale-down;fill stretches the image to fill the container (may distort).
contain fits the whole image inside the container, keeping aspect ratio.
cover fills the container and crops if necessary, keeping aspect ratio.
none displays the image at its original size.
scale-down compares none and contain and uses the smaller size.
img {
width: 200px;
height: 150px;
object-fit: cover;
}img {
width: 200px;
height: 150px;
object-fit: contain;
}img {
width: 200px;
height: 150px;
object-fit: fill;
}This page shows three boxes with the same image but different object-fit settings. You can see how the image changes shape and cropping inside each box.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Object Fit Example</title> <style> .container { width: 300px; height: 200px; border: 2px solid #333; margin-bottom: 1rem; overflow: hidden; } img { width: 100%; height: 100%; display: block; } .cover img { object-fit: cover; } .contain img { object-fit: contain; background-color: #eee; } .fill img { object-fit: fill; } </style> </head> <body> <section> <h2>object-fit: cover</h2> <div class="container cover"> <img src="https://via.placeholder.com/400x300" alt="Example image"> </div> </section> <section> <h2>object-fit: contain</h2> <div class="container contain"> <img src="https://via.placeholder.com/400x300" alt="Example image"> </div> </section> <section> <h2>object-fit: fill</h2> <div class="container fill"> <img src="https://via.placeholder.com/400x300" alt="Example image"> </div> </section> </body> </html>
Use object-fit only on replaced elements like <img>, <video>, or <canvas>.
For accessibility, always include alt text on images.
Combine object-fit with fixed width and height on the container for best results.
Object fit controls how images or videos fill their containers.
Use cover to fill and crop, contain to fit inside without cropping, and fill to stretch.
It helps keep your page looking neat and images clear without distortion.
Practice
object-fit: cover; do to an image inside a container?Solution
Step 1: Understand
This property makes the image fill the container completely, cropping parts if the aspect ratio differs.object-fit: cover;behaviorStep 2: Compare with other options
Unlikecontainwhich fits without cropping,covercrops to fill fully.Final Answer:
It fills the container completely, cropping parts if needed. -> Option CQuick Check:
Cover = fill and crop [OK]
- Confusing cover with contain
- Thinking cover stretches without cropping
- Assuming cover repeats the image
Solution
Step 1: Identify the property for fitting without cropping
object-fit: contain;fits the entire image inside the container without cropping or distortion.Step 2: Check other options
fillstretches,stretchis invalid, andcropis not a valid value.Final Answer:
object-fit: contain; -> Option DQuick Check:
Contain = fit inside without cropping [OK]
- Using invalid value 'stretch'
- Confusing fill with contain
- Thinking crop is a valid value
<div style="width: 200px; height: 100px;"> <img src="image.jpg" style="width: 100%; height: 100%; object-fit: contain;"> </div>
Solution
Step 1: Analyze the container and image size
The container is 200px wide and 100px tall. The image is set to 100% width and height of the container.Step 2: Understand
This makes the image scale to fit inside the container fully without cropping or distortion, preserving aspect ratio. Empty space may appear if aspect ratios differ.object-fit: contain;effectFinal Answer:
The entire image fits inside the container without cropping, possibly leaving empty space. -> Option AQuick Check:
Contain = fit inside with possible empty space [OK]
- Assuming image will crop with contain
- Thinking image will distort with contain
- Confusing contain with fill
img {
width: 100%;
height: 100%;
object-fit: fill;
}Solution
Step 1: Identify the problem with
This stretches the image to fill container width and height, causing distortion.object-fit: fill;Step 2: Use
object-fit: cover;to fix distortioncoverfills the container while preserving aspect ratio, cropping if needed, preventing distortion.Final Answer:
Changeobject-fittocover. -> Option AQuick Check:
Cover fills without distortion by cropping [OK]
- Using fill causes distortion
- Removing width/height breaks layout
- Thinking object-position fixes distortion
video {
width: 100%;
height: 100%;
object-fit: ?
object-position: ?
}Solution
Step 1: Choose object-fit to fill without distortion
coverfills the container fully, preserving aspect ratio, cropping if needed.Step 2: Set object-position to keep center visible
object-position: center;ensures cropping keeps the center area visible.Final Answer:
object-fit: cover; and object-position: center; -> Option BQuick Check:
Cover + center = fill fully, crop center visible [OK]
- Using contain leaves empty space
- Using fill distorts video
- Ignoring object-position for cropping focus
