如何自动调整大图像的大小,使其适合较小宽度的 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>
事实证明还有另一种方法可以做到这一点。
<img style='height: 100%; width: 100%; object-fit: contain'/>
会做的工作。这是 CSS 3 的东西。
小提琴: http : //jsfiddle.net/mbHB4/7364/
目前,无法以确定的方式正确地执行此操作,使用固定大小的图像(如 JPEG 或 PNG 文件)。
要按比例调整图像大小,你必须设置高度或宽度为 “100%”,但不能同时使用。如果将两者都设置为 “100%”,则图像将被拉伸。
选择是做高度还是宽度取决于您的图像和容器尺寸:
height="100%"
。 width="100%"
。 如果您的图像是 SVG(可变大小的矢量图像格式),则可以使扩展适合容器自动发生。
您只需确保 SVG 文件在<svg>
标记中没有设置这些属性:
height
width
viewbox
导出 SVG 文件时,大多数矢量绘图程序都会设置这些属性,因此每次导出时都必须手动编辑文件,或编写脚本来执行此操作。