How to Keep Aspect Ratio of Images in CSS

How to Keep Aspect Ratio of Images in CSS

Ferenc Almasi β€’ 2020 November 18 β€’ πŸ“– 1 min read

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
Looking to improve your skills? Check out our interactive course to master JavaScript from start to finish.
Master JavaScript

Resources:

Did you find this page helpful?
πŸ“š More Webtips
Frontend Course Dashboard
Master the Art of Frontend
  • check Unlimited access to hundred of tutorials
  • check Access to exclusive interactive lessons
  • check Remove ads to learn without distractions
Become a Pro

Recommended