CSS缩放和正方形中心裁剪图像
CSS scale and square center crop image
我的应用程序中有一个缩略图集合,大小为200x200。有时原始图像没有这个比例,所以我计划将图像裁剪为正方形。
目前它只是拉伸图像以适应缩略图,所以说我的原始图像大小是400x800,然后图像看起来非常压缩。我想裁剪这张图片,让它看起来是最短的宽度/高度,然后裁剪成一个正方形,所以在上面的例子中,它将被裁剪为400x400。
是否有一种方法可以通过CSS轻松做到这一点,或者我必须使用某种JS来做到这一点?
在CSS中使用background-image可以很容易地做到这一点。
.thumb {
display: inline-block;
width: 200px;
height: 200px;
margin: 5px;
border: 3px solid #c99;
background-position: center center;
background-size: cover;
}
在这里,第一张图片是400x800,第二张图片是800x400:
http://jsfiddle.net/samliew/tx7sf更新以处理图像宽度大于高度的情况。
你可以用纯CSS做到这一点。设置每个图像的容器元素具有固定的高度和宽度和overflow: hidden
。然后将图像设置为min-width: 100%
, min-height: 100%
。任何额外的高度或宽度都会溢出容器并被隐藏。