html中等比缩放的图像,巧用css实现等比缩放裁切

本文作者:IMWeb 黄qiong

未经同意,禁止转载

实用场景

我们想要将后台传过来的图片显示在一个80*80 的容器里,但是由于后台给的图片大小不一致,所以我们要对图片做一个等比缩放然后裁切中间部分显示的处理。举个栗子:

图一: 600*370

1e0ba28040808694ad2e2688e923d002.png

规则是以图片短的一边缩小到80的比例,缩短长的一边。以上图为例,由于宽比较短,为370,那我们就会以370/80 的比例,缩放这个图,最后就会变成 130*80,如图二。

图二:130*80

c64c94eaf13fddb5122ce1fb9f98bbe5.png

接着,我们截取中间的80*80展示在页面中,效果如图三所示:

图三:

292fcf79df524b41da2f322e92cc1d5c.png

代码实现

下面我们来解释如何做到这个效果,其实很简单~

1.先设置好一个80 *80 的容器 container,把背景图引进来

2.按照短边的比例缩放,这里我们的图片是高比较短,所以通过设置

background-size: auto 80px;就可以做到,如果是宽比较短,那就设置成

background-size: 80px auto;

3.让背景图片居中background-position: center center;

最终实现的代码如下:

.container {

width:80px;

height:80px;

background:url("http://p.qpic.cn/qqconadmin/0/292590fd5c4a4553864f8f56f8d29a92/0");

background-repeat:no-repeat;

background-size:auto 80px;

background-position:center center;

}

但是这里有个问题,我们并不想判断宽高还是长高来改background-size,这时候css3的background-size:cover 就可以帮我们解决这个问题,它会自动根据短的一边为比例缩放图片。

更改后的代码如下:

.container {

width:80px;

height:80px;

background:url("http://p.qpic.cn/qqconadmin/0/292590fd5c4a4553864f8f56f8d29a92/0");

background-repeat:no-repeat;

background-size:cover;

background-position:center center;

}

通过一段简单的代码,我们就可以愉快的实现这个看起来很麻烦的功能啦~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值