How to Keep Aspect Ratio of Images in CSS

If you ever wanted to resize an image disproportionately without losing aspect ratio in CSS — these two properties will help you out:

/* Center an image in itself without losing aspect ratio */
img {
    width: 300px;
    height: 300px;
    object-fit: none;
    object-position: 50% 50%;
    background: blue;
}
aspect-ratio.css
Copied to clipboard!

It uses object-fit with object-position. By default, object-fit takes the value of fill, which scales the image disproportionately if the container doesn't match the aspect ratio of the image. object-position on the other hand, sets the position of the image inside the container. To better understand how they work, take a look at object-fit taking up different values:

object-fit: fill; (default)
object-fit: contain;
object-fit: none;

The original size of the images is 200x300, but they are set to 200x200 through CSS.

With object-fit set to none on every image, observe how object-position changes the position of the image inside itself:

object-position: left top;
object-position: 50% 50%; (dead-center)
object-position: right bottom;

The original size of the image is 100x100px, but they are set to 200x200 through CSS.

How to keep image aspect ratio in CSS
If you would like to see more Webtips, follow @flowforfrank

10 Best Practices for Quickly Improving Your CSS

Resources:

Remove ads
Remove ads

📚 Get access to exclusive content

Want to get access to exclusive content? Support webtips with the price of a coffee to get access to tips, checklists, cheatsheets, and much more. ☕

Get access Support us
Remove ads Read more on
Remove ads
Remove ads
🎉 Thank you for subscribing to our newsletter. x This site uses cookies We use cookies to understand visitors and create a better experience for you. By clicking on "Accept", you accept its use. To find out more, please see our privacy policy.