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>
相关推荐
Summer不秃4 分钟前
Flutter之使用mqtt进行连接和信息传输的使用案例
前端·flutter
旭日猎鹰9 分钟前
Flutter踩坑记录(二)-- GestureDetector+Expanded点击无效果
前端·javascript·flutter
Viktor_Ye15 分钟前
高效集成易快报与金蝶应付单的方案
java·前端·数据库
hummhumm17 分钟前
第 25 章 - Golang 项目结构
java·开发语言·前端·后端·python·elasticsearch·golang
乐闻x44 分钟前
Vue.js 性能优化指南:掌握 keep-alive 的使用技巧
前端·vue.js·性能优化
一条晒干的咸魚1 小时前
【Web前端】创建我的第一个 Web 表单
服务器·前端·javascript·json·对象·表单
Amd7941 小时前
Nuxt.js 应用中的 webpack:compiled 事件钩子
前端·webpack·开发·编译·nuxt.js·事件·钩子
生椰拿铁You1 小时前
09 —— Webpack搭建开发环境
前端·webpack·node.js
狸克先生1 小时前
如何用AI写小说(二):Gradio 超简单的网页前端交互
前端·人工智能·chatgpt·交互
baiduopenmap2 小时前
百度世界2024精选公开课:基于地图智能体的导航出行AI应用创新实践
前端·人工智能·百度地图