图片等比例自动拉伸缩放解决方案总结

首先,准备两个原图:

       图一)宽>高,宽为200px

                      图二)高>宽,高为200px

需求一)原图居中

   150px*150px

   250px*250px

需求二)等比例缩放,最大边撑满,其余留空

   150px*150px

   250px*250px

需求三)等比例缩放,最小边撑满,不留空

   150px*150px

  250px*250px

解决方案一)使用background

<style type="text/css">
  .box { width: 任意宽; height: 任意高; background: #f0f0f0; }
    /*需求一)原图居中*/
    .box .bg { width: 100%; height: 100%; background: url(‘xxx.jpg‘) center center no-repeat; }
    /*需求二)等比例缩放,最大边撑满,其余留空*/
    .box .bg { width: 100%; height: 100%; background: url(‘xxx.jpg‘) center center no-repeat; background-size: contain; }
    /*需求三)等比例缩放,最小边撑满,不留空*/
    .box .bg { width: 100%; height: 100%; background: url(‘xxx.jpg‘) center center no-repeat; background-size: cover; }
</style>
<div class="box">
  <div class="bg"></div>
</div>

解决方案二)使用img+宽高auto(部分场景无法满足,不推荐)

通过设置img标签的width或height,可以解决需求一:原图居中。

解决需求二,只能满足以下2种情况:1)图片宽或高>=容器  2)已知图片比较宽还是比较高

解决需求三,必须已知图片比较宽还是比较高

<style type="text/css">
  .box { width: 宽; height: 高; background: #f0f0f0;position: relative; overflow: hidden; }

    /*需求一)原图居中*/
    .box img { width: auto; height: auto; position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);  }
    /*需求二)等比例缩小,最大边撑满,其余留空(当图片宽或高>=容器)*/
    .box img { width: auto; height: auto; max-width:100%;max-height:100%; position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
    /*需求二)等比例缩放,最大边撑满,其余留空(当图片宽>高)*/
    .box img { width: 100%; height: auto; position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
    /*需求二)等比例缩放,最大边撑满,其余留空(当图片高>宽)*/
    .box img { width: auto; height: 100%; position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
    /*需求三)等比例缩放,最小边撑满,不留空(当图片宽>高)*/
    .box img { width: auto; height: 100%; position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
    /*需求三)等比例缩放,最小边撑满,不留空(当图片高>宽)*/
    .box img { width: 100%; height: auto; position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
</style>
<div class="box">
  <img src="xxx.jpg" />
</div>

解决方案三)使用img+object-fit(CSS3)

在css3中提供了一个object-fit,类似于background-size,可参见https://developer.mozilla.org/zh-CN/docs/Web/CSS/object-fit

此方法必须浏览器支持css3或提供兼容。

<style type="text/css">  .box { width: 宽; height: 高; background: #f0f0f0; }
    /*需求一)原图居中*/
    .box img { width: 100%; height: 100%; object-position: center center; object-fit: none; }
    /*需求二)等比例缩放,最大边撑满,其余留空*/
    .box img { width: 100%; height: 100%; object-position: center center; object-fit: contain;}
    /*需求三)等比例缩放,最小边撑满,不留空*/
    .box img { width: 100%; height: 100%; object-position: center center; object-fit: cover;}
</style>
<div class="box">
  <img src="xxx.jpg" />
</div>

原文地址:https://www.cnblogs.com/kandyvip/p/12327466.html

时间: 2024-10-21 05:21:17

图片等比例自动拉伸缩放解决方案总结的相关文章

javascript图片等比例缩放代码

javascript图片等比例缩放代码: 图片的尺寸在初始的状态下往往不能够完美的适应网页的布局,这个时候就需要对图片进行缩放处理,当然不能够是无规则的进行缩放,否则可能出现图片变形现象,下面是一段能够对图片进行等比例缩放的实例代码. 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content=&q

S实现控制图片显示大小的方法【图片等比例缩放功能】

S实现控制图片显示大小的方法[图片等比例缩放功能] [需求]:读取磁盘中的图片,展示在弹出框中,等比例缩放图片,使图片显示完全. (读取磁盘中的图片展示在前台,请参照我的另一篇文章:) [开发]: 调用说明: 直接调用js函数即可. 我测试是一个image 标签中直接调用,如下: <div> <img id="showImageimg"  src="/sirdifoa/applycorrection/getImage.do?imgName=2017001.j

jQuery实现的图片等比例缩放效果

jQuery实现的图片等比例缩放效果:如果一个容器中放一个比容器还要大的图,那就可能就造成布局出现问题,就算是不容器大,有时候也看起来不够美观,这时候就要限制图片的尺寸,当然不能变形,否则就难看了,下面就介绍一下如何使用jQuery实现等比例缩放效果.代码如下: <div id="demo"> <img src="a.jpg" width="800" height="300" alt="图片&quo

微信小程序学习点滴《十二》:图片等比例缩放 获取屏幕尺寸图片尺寸 自适应

原文:http://www.wxapp-union.com/portal.php?mod=view&aid=360 早上在论坛上看到有人写了关于图片等比例缩放的文章,只是判断了图片宽是否大于屏幕宽.我之前在做Android的时候也会遇到图片等比例缩放的问题.应该是用图片宽高比和屏幕宽高比做判断.做个笔记. 老规矩,先上图. 1.图片高宽比小于屏幕高宽比 2.图片高宽比大于屏幕高宽比 3.这种其实也是图片高宽比小于屏幕高宽比,但是高宽都大于屏幕高宽.所以不能简单用高宽来判断,应该是用高宽比判断后做

背景图片自适应分辨率浏览器大小自动拉伸全屏代码

<div id="web_bg" style="position:absolute; width:100%; height:100%; z-index:-1"> <img style="position:fixed;" src="http://a.lanyes.org/bg1.jpg" height="100%" width="100%" /> </div&

图片等比例缩放

import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.awt.image.ConvolveOp; import java.awt.image.Kernel; import java.io.File; import java.io.FileOutputStream; import java.io.IOExcept

android图片等比例缩放 填充屏幕

用IamgeView的 android:scaleType  设置属性的时候  填充屏幕出现的各种问题 /** * 将图片等比例缩放 setAdjustViewBounds setMaxWidth setMaxWidth必须同时设置才有效 * * @param context * @param view * 父容器 * @param image * 图片控件 * @param source * 图片资源 */ public static void setImageViewMathParent(A

roid imageView图片按比例缩放

android:scaleType可控制图片的缩放方式,示例代码如下: 1 <ImageView android:id="@+id/img" 2      android:src="@drawable/logo" 3      android:scaleType="centerInside" 4     android:layout_width="60dip" 5     android:layout_height=&q

[前端]如何让图片等比例缩放,同时撑满父级容器的长或宽

[前端]如何让图片等比例缩放,同时撑满父级容器的长或宽 最近碰到一个问题,如何在一个容器里同时放一张图片,而这张图片会等比例缩放,长或宽会跟着父级容器的长或宽一致. 找了一段时间,发现了 css3 中有这个属性: object-fit: contain; 具体怎么使用:见这篇文章 半深入理解CSS3 object-position/object-fit属性 完 原文地址:https://www.cnblogs.com/htoooth/p/8676274.html