2020-11-12 同一个盒子,展示不同尺寸照片显示兼容问题

做开发时,遇到一个问题。

在程序中有一个扫码模块,不同的二维码扫完会展示不同的图片,图片的长宽比例都不一样,但是展示的盒子的大小是一定的。那么,对于过长或者过宽的图片,显示过程中可能会溢出,或者产生滚动条,又或者显示不全。这个就看自己的css怎么写了。

那么,如何能同时兼容这种过宽或者过高的图片呢。

首先给乘图片的父盒子一个固定的宽和高,设置 overflow: hidden,设置相对定位;然后给自己的img设置成绝对定位,设置最大宽度max-width:100%,left、top、right、bottom值为0,设置margin:auto。

这样可以解决不同尺寸的图片在同一个盒子里垂直水平居中,看起来又不会显得图片变形。

原理:

position:absolute;

left: 0;

right: 0;

top: 0;

bottom: 0;

margin:auto;

绝对定位元素的自动伸缩的特性来实现垂直水平居中,设置margin:auto;设置left和right的值相等,top和bottom的值相等,

注意:left和right的值不能超过其相对元素width减去它自身width的一半,否则绝对定位元素会优先取left值进行定位(前提是文档流是从左向右),但是top和bottom的值却没有这个限制。

width: 100%是将所有指定元素的宽度拉伸或收缩到和父元素的宽度一致,

而max-width: 100%则是如果指定元素的宽度不超过父元素的宽度,

则大小不变,如果超过了父元素的宽度,则将宽度收缩为父元素的宽度。


也可以考虑使用object-fit 属性

https://www.zhangxinxu.com/wordpress/2015/03/css3-object-position-object-fit/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容