巧用css实现等比缩放裁切

实用场景

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

图一: 600*370

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

图二:130*80

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

图三:

代码实现

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

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 条评论
登录 后参与评论

相关文章

来自专栏DeveWork

删除 WordPress 导航菜单的多余 CSS 选择器

在默认情况下,WordPress 的导航菜单会输出很多如menu-item、menu-item-type-taxonomy、menu-item-object-c...

1757
来自专栏前端黑板报

小程序--Canvas文字居中

注意红色划线的解释:对齐方式是以 X 的值为基点,然后在看看官网的 setTextAlign 最下面的图:

2172
来自专栏积累沉淀

JavaScript 事件基础补充

JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击。当用户执行某些操作的时候,再去执行一系列代码。 一.事件介绍 JavaScri...

2115
来自专栏Google Dart

AngularDart Material Design 记分卡 顶

(adsbygoogle = window.adsbygoogle || []).push({}); fun...

1194
来自专栏从零开始学 Web 前端

从零开始学 Web 之 BOM(一)BOM的概念,一些BOM对象

window 是浏览器的顶级对象,当调用 window 下的属性和方法时,可以省略 window。

973
来自专栏十月梦想

js定时器叠加处理方案

setInterval(function(),1000);设置一个定时器给定时器一个变量名字,如: var timer=setInterval(function...

1243
来自专栏贺贺的前端工程师之路

Angular2 之 结构型指令几个概念

两种用法。(* 与 template) 控制宿主元素的模板。 在哪里去显示,viewcontain 怎么注入,属性的set语法的使用,是便捷的监听属性值变化...

772
来自专栏葡萄城控件技术团队

你不可不知的HTML优化技巧

如何提升Web页面的性能,很多开发人员从多个方面来下手如JavaScript、图像优化、服务器配置,文件压缩或是调整CSS。 很显然HTML 已经达到了一个瓶颈...

2046
来自专栏Google Dart

AngularDart Material Design 工具提示 顶

工具提示卡的目标可以是任何元素,例如按钮,输入,链接等。目标也可以是help_outline图标,其充当实际目标的代理。

932
来自专栏达摩兵的技术空间

css3媒体查询简介

<link rel="stylesheet" media="min-width=900" />

825

扫码关注云+社区