调整图像大小以适应div容器

如何自动调整大图像的大小,使其适合宽度较小的div容器,同时保持其宽高比?


例如:stackoverflow.com - 当图像插入到编辑器面板并且图像太大而无法放入页面时,图像会自动调整大小。


不要将明确的宽度或高度应用于图像标签。 相反,给它:

max-width:100%;
max-height:100%;

另外, height: auto; 如果你只想指定一个宽度。

例如:http://jsfiddle.net/xwrvxser/1/

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

.portrait {
    height: 80px;
    width: 30px;
}

.landscape {
    height: 30px;
    width: 80px;
}

.square {
    height: 75px;
    width: 75px;
}
Portrait Div
<div class="portrait">
    <img src="http://i.stack.imgur.com/xkF9Q.jpg">
</div>

Landscape Div
<div class="landscape">
    <img src="http://i.stack.imgur.com/xkF9Q.jpg">
</div>

Square Div
<div class="square">
    <img src="http://i.stack.imgur.com/xkF9Q.jpg">
</div>

https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit

原来还有另一种方法可以做到这一点。

<img style='height: 100%; width: 100%; object-fit: contain'/> 

会做这项工作。 这是CSS3的东西。

小提琴:http://jsfiddle.net/mbHB4/7364/


目前没有办法以确定的方式正确地做到这一点,使用固定大小的图像,如JPEG或PNG文件。

要按比例调整图像大小,您必须将高度或宽度设置为“100%”,但不能同时设置两者。 如果您将这两个设置为“100%”,您的图像将被拉伸。

选择是否进行高度或宽度取决于您的图像和容器尺寸:

  • 如果你的图像和容器都是“肖像形”或两者都是“横向形状”(高度比宽度高,或者比高度宽),那么无论高度还是宽度都是“%100” 。
  • 如果您的图像是肖像,而您的容器是横向的,则必须在图像上设置height="100%"
  • 如果您的图像是横向的,并且您的容器是纵向的,则必须在图像上设置width="100%"
  • 如果你的图像是一个SVG,这是一个可变大小的矢量图像格式,你可以扩大以适应容器自动发生。

    您只需确保SVG文件没有在<svg>标记中设置的这些属性:

    height
    width
    viewbox
    

    大多数矢量绘图程序会在导出SVG文件时设置这些属性,因此每次导出时都必须手动编辑文件,或者编写脚本来执行此操作。

    链接地址: http://www.djcxy.com/p/41387.html

    上一篇: resize an image to fit a div container

    下一篇: HTML text unselectable but with a twich ! UNDELETABLE