图片下方空隙源于img默认inline导致的baseline对齐;解决方法包括:①display:block;②inline-block+vertical-align:top/bottom;③父元素line-height:0或font-size:0;④flex布局;⑤消除HTML空白符。
图片下方出现空隙,主要是因为 默认是 行内元素(inline),会像文字一样对齐基线(baseline),而基线与行框底部之间留有空间,用来容纳英文的 descender(如 g、j、p 的下延部分),所以图片下方看起来有一段“空白”。
最直接有效的办法是让图片脱离行内布局上下文:
img 添加 display: block; —— 图片独占一行,不再参与基线对齐,空隙立即消失display: inline-block;,再配合 vertical-align 调整对齐方式当图片保持 inline 或 inline-block 时,vertical-align 控制它在行框中的垂直位置:
vertical-align: bottom; 或 top; 或 middle; 都能消除默认 baseline 带来的空隙vertical-align: top; 或 bottom;,语义明确且兼容性好vertical-align 只对 inline / inline-block 元素生效,对 block 无效空隙大小其实受父元素的 line-height 和 font-size 影响(因为 baseline 对齐依赖行高):
li
ne-height,空隙会更明显line-height: 0;,再给内部文字单独设行高font-size: 0;(适合纯图片容器),再给子元素重置字体大小遇到特殊情况可尝试这些方法:
img 设置 margin-bottom: -4px;(数值依情况微调),快速视觉修复display: flex;,图片自动顶部对齐,空隙自然消失img 标签后换行或写空格——HTML 中的空白符会被渲染为一个空格,也可能造成间隙