实现代码

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

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

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

下面是代码:

<!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. FFmpegMediaMetadataRetriever-native.aar
  2. Exim4的简易部署
  3. 利用zookeeper实现发布订阅模式
  4. jmeter.bat配置(主要关于OOM)
  5. MyBatis 的工作流程分析
  6. P3865 【模板】ST表
  7. Java 的 安全性 体现在哪里?面试题
  8. .NET学习知识和技术总结
  9. Lambda表达式只是一颗语法糖?
  10. android手机录屏工具,安卓手机上有什么好用的屏幕录屏软件可以推荐?
  11. 2017西安网络赛 计蒜客 Trig Function 切比雪夫多项式
  12. springboot vue3 elementui plus点餐外卖系统源码
  13. ai跟随路径_AI 路径寻找器(形状组合工具)-怎么使用,使用教程
  14. 樱桃键盘驱动linux,樱桃键盘mx board9.0驱动
  15. 2021厦大信息学院夏令营经历
  16. win7的ie10浏览器打不开,就是双击图标无反应
  17. 下一代防火墙(NGFW)如何防御APT攻击?
  18. 国外有哪些类似Wooyun(乌云)的网站平台?
  19. 2020年度个税汇算清缴怎么办理?直接上干货!
  20. 8-2 Android 摄像头和相册

热门文章

  1. 北大核心2020TP类
  2. c#加粗代码_c#窗体,选中复选框,文字加粗变绿代码
  3. MySQL递归查询父节点或递归查询子节点-陈远波
  4. 关于Angular中使用HTML的select和option标签的一些问题
  5. echart地图配置
  6. 用YII实现多重查询(基于tag)
  7. WKWebView不显示提示框(Swift)
  8. Android内核开发:系统编译输出的镜像文件
  9. 取消chrome下input和textarea的聚焦边框
  10. jsp页面获取参数的方法(url解析、el表达式赋值、session取值)【原创】