是否有一种仅使用CSS就可以按比例调整(缩小)图像大小的方法?
我正在使用JavaScript的方法,但只是想看看是否可以使用CSS实现。
是否有一种仅使用CSS就可以按比例调整(缩小)图像大小的方法?
我正在使用JavaScript的方法,但只是想看看是否可以使用CSS实现。
使用CSS等比例调整图像大小:
img.resize {
width:540px; /* you can use % */
height: auto;
}
max-width
代替width
。关键是要使用height:auto
来覆盖已经存在于图片中的任何height="..."
属性。 - Phrogzmax-width: 100%; height: auto;
,以防大型图片超过其容器宽度。 - OdraEncoded控制尺寸并保持比例:
#your-img {
height: auto;
width: auto;
max-width: 300px;
max-height: 300px;
}
如果它是一个背景图片,使用background-size: contain。
示例 CSS:
#your-div {
background: url('image.jpg') no-repeat;
background-size:contain;
}
background-size: cover;
,它会覆盖整个区域。 - Turion尝试
transform: scale(0.5, 0.5);
-ms-transform: scale(0.5, 0.5);
-webkit-transform: scale(0.5, 0.5);
您可以使用 object-fit 属性:
.my-image {
width: 100px;
height: 100px;
object-fit: contain;
}
这将适应图片的大小,而不改变其比例。
object-fit
的效果很好 - 只是似乎需要同时设置 height
和 width
或者同时设置 max-height
和 max-width
才能避免图片在任何方向上溢出容器。 - tschumann请注意,width:50%
将图片调整为可用空间的50%,而 max-width:50%
将图片调整为其自然大小的50%。在使用这些规则进行移动端网页设计时,这一点非常重要,因此对于移动端网页设计,应始终使用max-width
。
更新:这可能是旧版Firefox的一个bug,现在已经修复了。
保持图像纵横比例缩放的方法:
可以尝试以下操作:
img {
max-width:100%;
height:auto;
}
2015年重新审视:
<img src="http://imageurl" style="width: auto; height: auto;max-width: 120px;max-height: 100px">
我重新审视了这个问题,因为现在所有常见的浏览器都有Cherif提到的工作自动建议,所以这样做效果更好,因为你不需要知道图像是宽还是高。
旧版本: 如果你受到例如120x100的盒子的限制,你可以这样做
<img src="http://image.url" height="100" style="max-width: 120px">
<img style="width: 50%;" src="..." />
这对我来说完全有效...或者我错过了什么?
编辑:但请注意Shawn提到的意外升级的问题。
css属性max-width和max-height效果很好,但不被IE6和我想是IE7支持。您应该使用这个属性替代height/width,这样可以避免意外放大图像。您只需要按比例限制最大高度/宽度即可。
max-width
的值来确定请求哪个尺寸的图片。 - Lilith River