How do I auto-resize an image to fit a "div" container?

Matthew C.

The Problem

You have a <div> container with its own width and height. For example, your HTML might look like this:

<div class="container"> <img src="cat.jpg" alt="a cat"> </div>

How do you make the image fill its container?

The Solution

First, we make the image fill its container by setting its width and height to 100%:

.container img { height: 100%; width: 100%; }

This makes the image fit, but it will distort the image if the image and container don’t have the same aspect ratio. To fix this, we can use the object-fit CSS property on the <img> element to determine how the image should be resized to fill its container. The object-fit property can be set with one of five values; the two commonly used values when you want to retain an image’s aspect ratio are “contain” and “cover”.

.container img { object-fit: contain; /* or object-fit: cover; */ }

If you set the value to “contain”, the image will fill the width and height of the container and maintain its aspect ratio. If the image and container have different aspect ratios, some background of the container <div> will be visible. If you set the value to “cover”, the image will maintain its aspect ratio and cover the container completely, cropping the image as needed.

Loved by over 4 million developers and more than 90,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

Share on Twitter
Bookmark this page
Ask a questionJoin the discussion

Related Answers

A better experience for your users. An easier life for your developers.

    TwitterGitHubDribbbleLinkedinDiscord
© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.