css解决图片变形问题

需求:不同尺寸图片在固定宽高容器中显示,显示不能变形,无法全部显示的情况下,允许裁切图片只显示中间部分


"object-fit" 这个css属性可以很好解决这个问题
object-fit有以下几个属性值
  • fill: 中文释义“填充”。默认值。替换内容拉伸填满整个content box, 不保证保持原有的比例`。

  • contain: 中文释义“包含”。保持原有尺寸比例。保证替换内容尺寸一定可以在容器里面放得下。因此,此参数可能会在容器内留下空白。

  • cover: 中文释义“覆盖”。保持原有尺寸比例。保证替换内容尺寸一定大于容器尺寸,宽度和高度至少有一个和容器一致。因此,此参数可能会让替换内容(如图片)部分区域不可见。

  • none: 中文释义“无”。保持原有尺寸比例。同时保持替换内容原始尺寸大小。

  • scale-down: 中文释义“降低”。就好像依次设置了none或contain, 最终呈现的是尺寸比较小的那个。

废话不多少,直接上代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    .wrap{
      width:400px;
      height:200px;
      background: #f5f5f5;
      margin:0 auto;
    }
    .wrap img{
      width:100%;
      height:100%;
      max-height: 100%;
      max-width: 100%;
      object-fit: cover;  /*加上这个就可以实现需求效果*/
    }

  </style>
</head>
<body>
  <div class="wrap">
    <img src="avatar2.jpeg" alt="">
  </div>
</body>
</html>

下面看看对比效果


原图
添加object-fit:cover之前
添加object-fit:cover之后
最后那种效果更好,上面两张图一看就明了了!
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容