Resize image proportionally with CSS?

HtmlCssImage Resizing

Html Problem Overview


Is there a way to resize (scale down) images proportionally using ONLY CSS?

I'm doing the JavaScript way, but just trying to see if this is possible with CSS.

Html Solutions


Solution 1 - Html

To resize the image proportionally using CSS:

img.resize {
    width:540px; /* you can use % */
    height: auto;
}

Solution 2 - Html

Control size and maintain proportion :

#your-img {
    height: auto; 
    width: auto; 
    max-width: 300px; 
    max-height: 300px;
}

Solution 3 - Html

If it's a background image, use background-size:contain.

Example css:

#your-div {
  background: url('image.jpg') no-repeat;
  background-size:contain;
}

Solution 4 - Html

Try

transform: scale(0.5, 0.5);
-ms-transform: scale(0.5, 0.5);
-webkit-transform: scale(0.5, 0.5);

Solution 5 - Html

You can use object-fit property:

.my-image {
    width: 100px;
    height: 100px;
    object-fit: contain;
}

This will fit image, without changing the proportionally.

Solution 6 - Html

Notice that width:50% will resize it to 50% of the available space for the image, while max-width:50% will resize the image to 50% of its natural size. This is very important to take into account when using this rules for mobile web design, so for mobile web design max-width should always be used.

UPDATE: This was probably an old Firefox bug, that seems to have been fixed by now.

Solution 7 - Html

To scale an image by keeping its aspect ratio

Try this,

img {
  max-width:100%;
  height:auto;
}

Solution 8 - Html

Revisited in 2015:

<img src="http://imageurl" style="width: auto; height: auto;max-width: 120px;max-height: 100px">

I've revisited it as all common browsers now have working auto suggested by Cherif above, so that works even better as you don't need to know if image is wider than taller.

older version: If you are limited by box of 120x100 for example you can do

<img src="http://image.url" height="100" style="max-width: 120px">

Solution 9 - Html

<img style="width: 50%;" src="..." />

worked just fine for me ... Or am I missing something?

Edit: But see Shawn's caveat about accidentally upsizing.

Solution 10 - Html

The css properties max-width and max-height work great, but aren't supported by IE6 and I believe IE7. You would want to use this over height / width so you don't accidentally scale an image up. You would just want to limit the maximum height/width proportionately.

Solution 11 - Html

img{
    max-width:100%;
    object-fit: scale-down;
}

works for me. It scales down larger images to fit in the box, but leaves smaller images their original size.

Solution 12 - Html

I believe this is the easiest way to do it, also possible using through the inline style attribute within the <img> tag.

.scaled
{
  transform: scale(0.7); /* Equal to scaleX(0.7) scaleY(0.7) */
}

<img src="flower.png" class="scaled">

or

<img src="flower.png" style="transform: scale(0.7);">

Solution 13 - Html

Use this easy scaling technique

img {
	max-width: 100%;
	height: auto;
}
@media {
  img { 
  	width: auto; /* for ie 8 */
  }
}

Solution 14 - Html

img {
    max-width:100%;
}

div {
    width:100px;
}

with this snippet you can do it in a more efficient way

Solution 15 - Html

We can resize image using CSS in the browser using media queries and the principle of responsive design.

    @media screen and (orientation: portrait) {
img.ri {
    max-width: 80%;
  }
}

@media screen and (orientation: landscape) {
  img.ri { max-height: 80%; }
}

Solution 16 - Html

You always need something like this

html
{
	width: 100%;
	height: 100%;
}

at the top of your css file

Solution 17 - Html

Try this:

div.container {
    max-width: 200px;//real picture size
    max-height: 100px;
}

/* resize images */
div.container img {
    width: 100%;
    height: auto;
}

Solution 18 - Html

image_tag("/icons/icon.gif", height: '32', width: '32') I need to set height: '50px', width: '50px' to image tag and this code works from first try note I tried all the above code but no luck so this one works and here is my code from my _nav.html.erb:
<%= image_tag("#{current_user.image}", height: '50px', width: '50px') %>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioncodingbearView Question on Stackoverflow
Solution 1 - HtmlMkkView Answer on Stackoverflow
Solution 2 - HtmlCherifView Answer on Stackoverflow
Solution 3 - HtmllenoohView Answer on Stackoverflow
Solution 4 - HtmloromeView Answer on Stackoverflow
Solution 5 - HtmlAndrii BogachenkoView Answer on Stackoverflow
Solution 6 - HtmlandreszsView Answer on Stackoverflow
Solution 7 - HtmlPrasanth K CView Answer on Stackoverflow
Solution 8 - HtmlPetrVView Answer on Stackoverflow
Solution 9 - HtmlAdrienView Answer on Stackoverflow
Solution 10 - HtmlShawnView Answer on Stackoverflow
Solution 11 - HtmlpheonView Answer on Stackoverflow
Solution 12 - HtmlcREckerView Answer on Stackoverflow
Solution 13 - HtmlGeniusknightView Answer on Stackoverflow
Solution 14 - HtmlLenin Zapata PView Answer on Stackoverflow
Solution 15 - HtmlMoh KView Answer on Stackoverflow
Solution 16 - HtmlNomikos StrigkosView Answer on Stackoverflow
Solution 17 - HtmlovodView Answer on Stackoverflow
Solution 18 - Htmlneo7View Answer on Stackoverflow