Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >巧用css实现等比缩放裁切

巧用css实现等比缩放裁切

作者头像
IMWeb前端团队
发布于 2019-12-05 03:47:34
发布于 2019-12-05 03:47:34
94700
代码可运行
举报
文章被收录于专栏:IMWeb前端团队IMWeb前端团队
运行总次数:0
代码可运行

本文作者:IMWeb 黄qiong 原文出处:IMWeb社区 未经同意,禁止转载

实用场景

我们想要将后台传过来的图片显示在一个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;

最终实现的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.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 就可以帮我们解决这个问题,它会自动根据短的一边为比例缩放图片。

更改后的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.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;
}

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-07-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
巧用css实现等比缩放裁切
戳蓝字“IMWeb前端社区”关注我们哦! 实用场景 我们想要将后台传过来的图片显示在一个80*80 的容器里 但是由于后台给的图片大小不一致 所以我们要对图片做一个等比缩放然后裁切中间部分显示的处理。 举个栗子 图一: 600*370 规则是以图片短的一边缩小到80的比例,缩短长的一边 以上图为例,由于宽比较短,为370 那我们就会以370/80 的比例,缩放这个图 最后就会变成 130*80 如图二 130*80 接着,我们截取中间的80*80展示在页面中 如下图 代码实现 下面我们来解释如何做到这
用户1097444
2022/06/29
1.3K0
巧用css实现等比缩放裁切
CSS 背景(background)
background-image 属性允许指定一个图片展示在背景中(只有CSS3才可以多背景)可以和 background-color 连用。 如果图片不重复地话,图片覆盖不到地地方都会被背景色填充。 如果有背景图片平铺,则会覆盖背景颜色。
星辰_大海
2020/09/30
2.2K0
你可能不是那么了解的 CSS Background
Background,写过 CSS 的朋友们肯定都知道这个属性的作用,顾名思义,背景嘛。MDN 中对其的定义如下:
政采云前端团队
2020/02/14
1.4K0
你可能不是那么了解的 CSS Background
如何在canvas中模拟css的背景图片样式
笔者开源了一个Web思维导图mind-map,最近在优化背景图片效果的时候遇到了一个问题,页面上展示时背景图片是通过css使用background-image渲染的,而导出的时候实际上是绘制到canvas上导出的,那么就会有个问题,css的背景图片支持比较丰富的效果,比如通过background-size设置大小,通过background-position设置位置,通过background-repeat设置重复,但是canvas笔者只找到一个createPattern()方法,且只支持设置重复效果,那么如何在canvas里模拟一定的css背景效果呢,不要走开,接下来一起来试试。
街角小林
2023/03/01
7.3K0
如何在canvas中模拟css的背景图片样式
IT课程 CSS基础 023_图片、背景
图片是网页中非常重要的媒体类型,恰到好处的使用图片可以使网页多彩生动,不再局限冷冰冰的文字。
zhaoJian.Net
2024/04/03
1400
IT课程 CSS基础 023_图片、背景
9.26【前端开发】背景属性:样式中背景色和背景图片样式如何使用?
初始值transparent ,在 CSS 中,transparent是一种颜色。
LIYI
2020/10/09
9680
9.26【前端开发】背景属性:样式中背景色和背景图片样式如何使用?
CSS3 Background 属性介绍
与border类似,ie对新的background属性都是不支持的。多的就不说了,来看看,新的background 属性吧。
py3study
2020/01/14
7270
全栈之前端 | 9.CSS3基础知识之图像元素样式学习
描述: 好久没更新此《#前端学习之路》专栏文章了,不知道学习前端看友们想不想我,所以这一段时间又开始整理更新了。通过前面几章的学习,相信大家已经对CSS有了一个简单的了解吧,现在我们又回到使用频率较高的 文本 text、图像 images、媒体 media、表单 table 等元素CSS样式的设置,此章节主要讲解针对图像的相关CSS属性以其使用的示例演示。
全栈工程师修炼指南
2023/12/18
3610
全栈之前端 | 9.CSS3基础知识之图像元素样式学习
前端学习(8)~css学习(二):背景属性
光学显示器中,每个像素都是由三原色的发光原件组成的,靠明亮度不同调成不同的颜色的。r、g、b的值,每个值的取值范围0~255,一共256个值。
Vincent-yuan
2020/02/25
1.4K0
前端学习(8)~css学习(二):背景属性
背景属性
背景属性     1.作用         设置背景颜色和背景图片     2.背景色         属性             background-color:值;         取值             任何合法性的颜色值     3.背景图片         属性             background-image:url(); 4.背景属性             background-repeat:值         取值             no-repeat  不重复  
十月梦想
2018/08/29
4560
我发现了7个关于 CSS backgroundImage 好用的技巧
背景图像可能是我们所有前端开发人员在我们的职业生涯中至少使用过几次的CSS属性之一。大多数人认为背景图像不可能有任何不寻常的地方,但经过研究,答案并非如此。所以本文收集了七个我认为最有用的技巧,并创建了一些代码示例。
前端小智@大迁世界
2020/05/26
1.1K0
我发现了7个关于  CSS backgroundImage 好用的技巧
《精通CSS》第5章 漂亮的盒子
前面我们了解过了盒模型,知道盒子由外边距、边框、内边距和内容区组成。对于整个盒子,我们可以通过一系列的手段来美化,如指定盒子的背景、边框以及盒子的阴影。
歪马
2020/04/07
1.9K0
《精通CSS》第5章 漂亮的盒子
理解CSS3中的background-size(对响应性图片等比例缩放)[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说理解CSS3中的background-size(对响应性图片等比例缩放)[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/02/10
3.3K0
理解CSS3中的background-size(对响应性图片等比例缩放)[通俗易懂]
CSS背景属性知多少?
本文想通过简单的属性介绍和代码实践,给大家一个更加直观的CSS规则和表现的认识,同时领略CSS神奇的表现能力,以提升我们在UI开发过程中的效率。
小东同学
2022/07/29
1.1K0
CSS背景属性知多少?
一篇文章带你了解CSS3 背景知识
CSS3允许你为一个元素添加多个背景图像, 通过使用 background-image 属性.不同的背景图像用逗号隔开,图像叠加在一起,
前端皮皮
2020/11/26
6410
一篇文章带你了解CSS3 背景知识
CSS征途之Background点滴
CSS虽算不上编程语言,确是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,且能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。如此强大,怎能不去学习一下?而这里就记录下CSS学习使用关于Background的点滴,毕竟好记性不如烂笔头。 Background基础知识 Background语法 backgr
晚晴幽草轩轩主
2018/03/27
1.5K0
CSS:背景属性
如果背景一直都是一成不变的,对于一个网页还是挺无趣的,为了让背景更加的生动,可以修改它的颜色。 语法:
Yui_
2025/02/03
1270
CSS:背景属性
从零开始学 Web 之 CSS3(三)渐变,background属性
渐变是CSS3当中比较丰富多彩的一个特性,通过渐变我们可以实现许多炫丽的效果,有效的减少图片的使用数量,并且具有很强的适应性和可扩展性。可分为线性渐变、径向渐变。
Daotin
2018/08/31
1.9K0
从零开始学 Web 之 CSS3(三)渐变,background属性
深入常用CSS声明(一) —— Background
一直对一些自己常用的css声明掌握得不是很全,只知道常用的一些属性和值,但是对于其他的用法确实一知半解,这篇文章旨在扫盲,先不说有多深的理解,至少做到能够看到这些声明的属性和值的时候做到不陌生。 这里后续还会增加更多自己在工作和学习中的一些css声明,供自己查阅,也提供给大家看看。 github background-image 用于指定一个容器的背景图片,主要的值有三个: none 无背景图片(默认) url(/* image path */) 指定的图片地址 inherit 继承自父容器 当背景图片默认
糊糊糊糊糊了
2018/05/09
1.8K0
深入常用CSS声明(一) —— Background
CSS实现背景图片右侧定位的5种小技巧
说到背景图片右侧定位,大家一定会想到使用background-position属性来实现。
歪马
2020/04/07
5.1K0
CSS实现背景图片右侧定位的5种小技巧
相关推荐
巧用css实现等比缩放裁切
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验