img 自适应 图片 css3 图片 新闻图片 图片 等比例 裁剪 布局 自适应 定位 自适应居中 垂直居中
object-fit操作是保证图片不会破坏比例情况下进行
//保证等比例显示出全图内容,
1,宽比高大时:宽100%,高auto
2, 高比宽大时:高100%,宽auto
优点:图片内容显示完全
缺点:就是容器会留部分空白
object-fit: contain;
定位:
配合object-position:50% 50%使用可以移动图片位置
//保证填满容器
优点:图片占满容器,不会留空白处
缺点:图片部分会被裁剪
object-position: cover
//保证填满容器又不会被裁剪
缺点:破坏图片比例,图片扭曲(不推荐)
object-fit: fill;
案例:
<div style="height: 200px;width: 200px;background: pink;">
<img src="mm.jpg" style="object-fit: contain;width: 100%; height: 100%;">
</div>

http://www.zhangxinxu.com/study/201503/css3-object-fit.html
用js实现,object-fit: contain效果
/******最完美解决 图片在图片框内按宽高比例自动缩放!!!***/
//Img:要放图片的img元素,onload时传参可用this
//maxHeight :img元素的高度,像素(图片框 最大高度)
//maxWidth:img元素的宽度,像素(图片框 最大宽度)
function AutoSize(Img, maxWidth, maxHeight) {
var image = new Image();
//原图片原始地址(用于获取原图片的真实宽高,当<img>标签指定了宽、高时不受影响)
image.src = Img.src;
// 当图片比图片框小时不做任何改变
if (image.width < maxWidth&& image.height < maxHeight) {
Img.width = image.width;
Img.height = image.height;
}
else //原图片宽高比例 大于 图片框宽高比例,则以框的宽为标准缩放,反之以框的高为标准缩放
{
if (maxWidth/ maxHeight <= image.width / image.height) //原图片宽高比例 大于 图片框宽高比例
{
Img.width = maxWidth; //以框的宽度为标准
Img.height = maxWidth* (image.height / image.width);
}
else { //原图片宽高比例 小于 图片框宽高比例
Img.width = maxHeight * (image.width / image.height);
Img.height = maxHeight ; //以框的高度为标准
}
}
}
调用:
<img onload="AutoSize(this, $(this).width(), $(this).height())">