固定大小容器内,不同比例的图片高度撑满,宽度居中裁剪

在一个商品展示列表中,一个需求是在一个正方形的方块中,按原比例展示商品图片,但是图片比例不定,需要居中显示,高度撑满,宽度多余的隐藏

结构:

固定大小容器内,不同比例的图片高度撑满,宽度居中裁剪

imgOuter是固定容器,宽高都是120px;

CSS代码:

.imgOuter{
  width: 120px;
  height: 120px;
  border-radius: 10px;
  overflow: hidden;
  border: 1Px solid #d7d7d7;
position: relative;
z-index: 1; }

img居中显示的CSS,由于宽度不定,所以使用了transfrom的translate,思路来源于网上的某个文章,但是找不到出处了:

.imgWH{
  height: 100%;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

需要注意imgOuter中的z-index:1,在img上使用transform后,imgOuter如果不设置z-index,那么它的overflow:hidden将会失效。来源于:

KevinYue----https://segmentfault.com/q/1010000005174964/a-1020000005175107

最终结果:

固定大小容器内,不同比例的图片高度撑满,宽度居中裁剪

图片被居中显示,高度撑满,并两边裁剪掉了多余的宽度。