当我在图像周围放置一个 div 时,为啥底部有间距? [复制]

Posted

技术标签:

【中文标题】当我在图像周围放置一个 div 时,为啥底部有间距? [复制]【英文标题】:When I put a div around an image, why is there spacing at the bottom? [duplicate]当我在图像周围放置一个 div 时,为什么底部有间距? [复制] 【发布时间】:2017-08-02 05:00:41 【问题描述】:

以这个小提琴为例:https://jsfiddle.net/ou33muc2/

<div class = "overallDiv">
<div id="example"><img src = "http://writingexercises.co.uk/images2/randomimage/slimy.jpg" style="width:100vw; opacity: 0.5;"/></div></div>

我不明白为什么图片周围的div和上、左、右的图片之间没有空隙,但是底部有空隙,如红色边框所示。

此外,我怎样才能删除它,以便 div 紧贴整个图像?

编辑:我知道在图像周围有一个 div 周围有一个 div 似乎有点毫无意义,但这是一个按比例缩小的问题,问题仍然适用,所以请忽略它的实用性。

【问题讨论】:

我大胆猜测这是由于浏览器实现的默认样式。也许尝试使用 CSS reset 运行? 您能否提供有关如何执行此操作的见解? 这里已经回答了很多次了,简单的谷歌搜索div gap img会给你很多结果,你应该研究而不是问完之后再问 【参考方案1】:

因为图像在基线处垂直对齐 - 通常放置文本的位置。并且在基线下方有空间,用于带有“下降”的字母,如 j、g、p 等。

为避免这种情况,只需将line-height: 0; 添加到容器中:

https://jsfiddle.net/5czathrh/1/(编辑:更新)

【讨论】:

效果很好,解释很好。【参考方案2】:

这是文本下降空间(“基线”下方的区域)。如果您在图像上设置display: block,您可以使用更传统的边距/等值对其进行布局。

【讨论】:

以上是关于当我在图像周围放置一个 div 时,为啥底部有间距? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

当宽度未知时,将图像水平居中并将其垂直放置在 div 内的底部

宽度 100%,周围有白色边框。为啥?

删除图像视图周围的空白

在 MVC 5 应用程序中检测滚动到局部视图的底部

如何将图像放置在 div 的底部?

用浏览器窗口调整两个div底部div到高度[复制]