实现代码

我们在编写页面代码的时候往往会需要添加图片。在使用过程中,获取的图片尺寸经常可能和页面需要的尺寸不一致,这时候就需要对获取图片进行缩放。

对图片缩放有一定技巧,或者说是固定的编写代码套路。否则可能稍有不慎,就会导致图片被拉伸,失去原有纵横比。下面代码展示了一种保持图片纵横比缩放图片的套路。

建议首先看一下这篇文章,使得基线位置和中线位置保持一致:图片垂直居中

下面是代码:

<!DOCTYPE html>
<html><head><title>这是个标题</title><style type="text/css">div {width: 700px;height: 500px;line-height: 500px;text-align: center;font-size: 0;background-color: gray;}img {width: auto;max-width: 100%;height: auto;max-height: 100%;vertical-align: middle;}</style></head><body><h1>这是一个一个简单的HTML</h1><div><!-- 这是一个比较大的图片url --><img src="https://ss0.baidu.com/-Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/00e93901213fb80ea80ffd7534d12f2eb83894b2.jpg" alt=""><!-- 这是一个比较小的图片url --><!-- <img src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2F51modo.cc%2Fupload%2Fkindeditor%2Fimage%2F20150211%2F20150211174716_65906.jpg&refer=http%3A%2F%2F51modo.cc&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1617864784&t=b39d0cad6c14f8f970a9c29775152024" alt=""> --></div><p>Hello World!</p></body>
</html>
font-size: 0

图片垂直居中这篇文章可能关于font-size: 0这一点解释的不够详细,关于这一点,我再多啰嗦几句,来个直观感受。比如我有这么一段内容:

<div class="test1" style="background-color:gray;"><img class="test2" src="https://image.zhangxinxu.com/image/study/s/s256/mm1.jpg">
</div>

不添加任何CSS样式的情况下,渲染之后大致是这样的:

从图中可以看到,图片并没有和div对齐,还留着一小块区域。这是为什么呢?原因是img默认的对齐方式是vertical-align: baseline也就是基线对齐。而基线是什么,基线就是字母X的下边缘。而字符zxx本身是有高度的,对吧,于是,图片下面就留空了。

zxx文字的高度是由行高决定的。于是,当我们设置父元素div的行高为font-size: 0时,就可以消除这一小块没有对齐的区域了。

另外vertical-align属性只在inline的情况下才生效,我们可以把img的display改完block,同样也可以消除最下面的一小块不对齐区域。

通过img标签的max-width设置,可以保证,即使父组件div缩放了,子组件img也可以在保持纵横比的情况下等比例自动缩放。此外,需要注意的是,如果不设置的话,img如果加载一个比较大的图像时,可能会超出父组件的div包裹范围。img内容并不会永远限制在div中。

参考资料

[1] css img 等比例自动缩放
[2] 图片垂直居中
[3] 图片溢出div,超出div解决办法
[4] CSS深入理解vertical-align和line-height的基友关系

CSS实现图片居中且缩放不影响图片纵横比相关推荐

  1. android 图片 居中 手势缩放 设置缩放比例,ImageView通过matrix实现手势缩放

    关于ImageView的手势缩放,有很多种方法,绝大多数开源自定义缩放都是修改了ondraw函数来实现的.但是ImageView本身有scaleType属性,通过设置android:scaleType ...

  2. 文字图片居中html代码,文字和图片居中的HTML代码怎么写?

    html文字居中和html图片居中方法代码,通过在html中实现文字居中图片居中篇在html中实现文字图片内容居中有三种方法,其中两种使用CSS样式实现,一直使用原始的html标签内加入"a ...

  3. 如何在html盒子中将图片居中,css3怎么使div图片居中?

    在网页中我们多使用css+div进行布局,我们通常会将图片放在div中,那么该如何让图片在DIV盒子里水平居中.下面我们来看一下css设置图片在div中居中的方法. css3使div图片居中的方法: ...

  4. php ajax loading图片居中显示,ajax+php上次图片

    HTML: ajax: $("#changeImg").change(function () { var data = new FormData(); //为FormData对象添 ...

  5. 【Typora 图片居中】彻底解决Typora图片无法居中的问题

    ▚ 01 问题描述

  6. 怎么让图片居中php,怎么让CSS文件里图片居中

    让CSS文件里图片居中的方法:首先创建一个HTML示例文件:然后引入一张背景图片:最后通过css中的"background-position"属性实现图片居中即可. 本文操作环境: ...

  7. css图片居中的方法

    图片居中有两种方法: 1.将图片放到css代码中居中. 2.将图片放到html代码中居中, 个人认为将图片放到css代码中居不是太灵活,html代码一般是模板页,需要调用各种数据,包括调用各种图片,不 ...

  8. 纯CSS无表达式实现图片等比缩放(支持IE7及以上)

    在制作网页的时候,常常会遇到一种情况,我们需要把一些未知尺寸的图片放在一个固定宽高的容器中,这时候我们需要考虑这样的问题: 只给图片设置宽度或高度的其中一项可以实现图片等比缩放,但图片可能超出容器大小 ...

  9. 实例讲解如何利用jQuery设置图片居中放大或者缩小

    大家有没有见过其他网站的图片只要鼠标放上去就能放大,移出去的时候就能缩小,而且一直保持居中显示!其实jQuery提供一个animate函数可以使图片放大和缩小,只要改变图片的长和高就OK啦!但是ani ...

最新文章

  1. Android中measure过程、WRAP_CONTENT详解以及 xml布局文件解析流程浅析
  2. 构成子网与构成超网的分析
  3. 搜索引擎学习(五)Lucene操作索引
  4. 举例讲清楚模型树和回归树的区别
  5. 具有MicroProfile配置的可配置JAX-RS ExceptionMapper
  6. iOS input被键盘遮挡
  7. 手把手教你搭建springboot程序
  8. 科学家风采 | 杜小勇、周傲英、王万良获批首批国家级虚拟教研室建设试点项目!...
  9. mysql全局读写怎么锁_MySQL全局锁和表锁
  10. 超硬核!只要1美元!教你给MacBook装上触摸屏
  11. 【SICP练习】142 练习3.77
  12. API调用,1688商品页面APP端原数据获取(页面信息采集API)
  13. 《编译原理》陈火旺——词法分析程序c语言实现完整版
  14. 不能启动安全中心服务器,无法启动windows安全中心的解决办法
  15. visio2013里画带箭头的折线连接线
  16. MySQL根据输入的查询条件排序
  17. 请高手指点,简单的几个数组操作方法不知道是否可以有更好的改进方法或者更简单的方法?
  18. 2021秋季《数据结构》_EOJ 1086.哥尼斯堡的七桥问题
  19. 震惊一个月销800万的模式,全新拼团模式全攻略(运营干货)
  20. 上周技术关注:计算机图书2005之荐

热门文章

  1. html编写个人博客_Django 开发简易博客网站
  2. 分布式调用技术 RPC VS REST
  3. CMD(SA400 Command)
  4. PLSQL Developer连接Oracle数据库
  5. ext3文件系统反删除利器-ext3grep
  6. 多层PCB的叠层板材
  7. 浅谈DNS体系结构:DNS系列之一
  8. 皮尔逊相关系数的计算(python代码版)
  9. 【正一专栏】警察叔叔,我还是只是一个婴儿
  10. Hive客户端secureCRT中文显示设置