CSS:图片间空白间距问题的解决方案

一、问题描述

今天有小伙伴遇到多张图片排版显示时中间存在空白间隙,问如何处理:

html 复制代码
<div>
<img width="100%" src="https:/xxx.png" id="1747098" style="max-width:100%;"><img width="100%" src="https://xxx.png" id="1747103" style="max-width:100%;"><img width="100%" src="https://xxx.png" id="1747090" style="max-width: 100%;">
</div>

二、解决方案

以往如果发现图片之间存在间距,‌通常是由于图片元素的默认对齐方式导致的。‌为了解决这个问题,‌可以尝试以下方法:‌

1.设置父级元素font-size:0:‌另一种方法是调整父级元素的字体大小(‌font-size)‌为0。‌这种方法基于基线的位置与字体大小相关,‌通过将父级元素的字体大小设置为0,‌可以避免由于字体大小不同而导致的基线对齐问题,‌进而减少图片间的间距。‌

2.改变vertical-align的值:‌通过调整图片元素的vertical-align属性值,‌可以改变图片的对齐方式,‌从而减少或消除图片间的间距。‌这种方法适用于调整图片默认的对齐方式,‌以达到减少间距的目的。‌

3.设置元素display:‌通过将图片元素设置为block或flex布局,‌可以有效地消除图片之间的间距。‌这种方法的主要原理是将原本的内联元素转换为块级元素,‌从而避免由于基线对齐而产生的不必要的间距。‌

于是首先将父元素的font-size设置为0

html 复制代码
<div style="font-size:0;">
<img width="100%" src="https:/xxx.png" id="1747098" style="max-width:100%;"><img width="100%" src="https://xxx.png" id="1747103" style="max-width:100%;"><img width="100%" src="https://xxx.png" id="1747090" style="max-width: 100%;">
</div>

经过测试发现,在PC Chorme预览和部分真机上测试都能起效果,但在iphone 14 Pro上测试发现依然存在大概1px的间距:

尝试在img上设置vertical-align的值为middle,在iphone 14 Pro上测试发现问题依然存在;

最后尝试在img上设置display的值为block,在iphone 14 Pro上测试发现问题解决。

最终代码:

html 复制代码
<div style="font-size:0;"><img width="100%" src="https://xxx.png" id="1747098" style="max-width:100%;display:block;"><img width="100%" src="https://xxx.png" id="1747103" style="max-width:100%;display:block;"><img width="100%" src="https://xxx.png" id="1747090" style="max-width: 100%;display:block;"></div>
相关推荐
杨艺韬2 小时前
vite内核解析-第2章 架构总览
前端·vite
我是伪码农2 小时前
外卖餐具智能推荐
linux·服务器·前端
2401_885885043 小时前
营销推广短信接口集成:结合营销策略实现的API接口动态变量填充方案
前端·python
小李子呢02113 小时前
前端八股性能优化(2)---回流(重排)和重绘
前端·javascript
程序员buddha3 小时前
深入理解ES6 Promise
前端·ecmascript·es6
吴声子夜歌3 小时前
ES6——Module详解
前端·ecmascript·es6
剪刀石头布啊4 小时前
原生form发起表单干了啥
前端
剪刀石头布啊4 小时前
表单校验场景,如何实现页面滚动到报错位置
前端
gyx_这个杀手不太冷静4 小时前
大人工智能时代下前端界面全新开发模式的思考(二)
前端·架构·ai编程
GreenTea4 小时前
AI Agent 评测的下半场:从方法论到落地实践
前端·人工智能·后端