CSS实现图片居中且缩放不影响图片纵横比
实现代码
我们在编写页面代码的时候往往会需要添加图片。在使用过程中,获取的图片尺寸经常可能和页面需要的尺寸不一致,这时候就需要对获取图片进行缩放。
对图片缩放有一定技巧,或者说是固定的编写代码套路。否则可能稍有不慎,就会导致图片被拉伸,失去原有纵横比。下面代码展示了一种保持图片纵横比缩放图片的套路。
建议首先看一下这篇文章,使得基线位置和中线位置保持一致:图片垂直居中
下面是代码:
<!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实现图片居中且缩放不影响图片纵横比相关推荐
- android 图片 居中 手势缩放 设置缩放比例,ImageView通过matrix实现手势缩放
关于ImageView的手势缩放,有很多种方法,绝大多数开源自定义缩放都是修改了ondraw函数来实现的.但是ImageView本身有scaleType属性,通过设置android:scaleType ...
- 文字图片居中html代码,文字和图片居中的HTML代码怎么写?
html文字居中和html图片居中方法代码,通过在html中实现文字居中图片居中篇在html中实现文字图片内容居中有三种方法,其中两种使用CSS样式实现,一直使用原始的html标签内加入"a ...
- 如何在html盒子中将图片居中,css3怎么使div图片居中?
在网页中我们多使用css+div进行布局,我们通常会将图片放在div中,那么该如何让图片在DIV盒子里水平居中.下面我们来看一下css设置图片在div中居中的方法. css3使div图片居中的方法: ...
- php ajax loading图片居中显示,ajax+php上次图片
HTML: ajax: $("#changeImg").change(function () { var data = new FormData(); //为FormData对象添 ...
- 【Typora 图片居中】彻底解决Typora图片无法居中的问题
▚ 01 问题描述
- 怎么让图片居中php,怎么让CSS文件里图片居中
让CSS文件里图片居中的方法:首先创建一个HTML示例文件:然后引入一张背景图片:最后通过css中的"background-position"属性实现图片居中即可. 本文操作环境: ...
- css图片居中的方法
图片居中有两种方法: 1.将图片放到css代码中居中. 2.将图片放到html代码中居中, 个人认为将图片放到css代码中居不是太灵活,html代码一般是模板页,需要调用各种数据,包括调用各种图片,不 ...
- 纯CSS无表达式实现图片等比缩放(支持IE7及以上)
在制作网页的时候,常常会遇到一种情况,我们需要把一些未知尺寸的图片放在一个固定宽高的容器中,这时候我们需要考虑这样的问题: 只给图片设置宽度或高度的其中一项可以实现图片等比缩放,但图片可能超出容器大小 ...
- 实例讲解如何利用jQuery设置图片居中放大或者缩小
大家有没有见过其他网站的图片只要鼠标放上去就能放大,移出去的时候就能缩小,而且一直保持居中显示!其实jQuery提供一个animate函数可以使图片放大和缩小,只要改变图片的长和高就OK啦!但是ani ...
最新文章
- FFmpegMediaMetadataRetriever-native.aar
- Exim4的简易部署
- 利用zookeeper实现发布订阅模式
- jmeter.bat配置(主要关于OOM)
- MyBatis 的工作流程分析
- P3865 【模板】ST表
- Java 的 安全性 体现在哪里?面试题
- .NET学习知识和技术总结
- Lambda表达式只是一颗语法糖?
- android手机录屏工具,安卓手机上有什么好用的屏幕录屏软件可以推荐?
- 2017西安网络赛 计蒜客 Trig Function 切比雪夫多项式
- springboot vue3 elementui plus点餐外卖系统源码
- ai跟随路径_AI 路径寻找器(形状组合工具)-怎么使用,使用教程
- 樱桃键盘驱动linux,樱桃键盘mx board9.0驱动
- 2021厦大信息学院夏令营经历
- win7的ie10浏览器打不开,就是双击图标无反应
- 下一代防火墙(NGFW)如何防御APT攻击?
- 国外有哪些类似Wooyun(乌云)的网站平台?
- 2020年度个税汇算清缴怎么办理?直接上干货!
- 8-2 Android 摄像头和相册