17.div包裹img后面空位???

Posted 雲韵檀鈊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17.div包裹img后面空位???相关的知识,希望对你有一定的参考价值。

可以看一下这里html - html5 vertical spacing issue with <img>

几乎是题主问题的一种更详细问答。

原因:我大概看了一下,挺有意思的。我简单翻译一下高票答案:

首先,浏览器并没有所谓的"html 5 模式",而是只有三种:怪异模式(Quirks),几乎标准的模式(Limited Quirks)和标准模式(Standards),其中几乎标准的模式和标准模式之间的唯一差异在于是否对<img>元素给定行高(line-height)和基线(baseline)。几乎标准模式中,如果<img>标签所在行没有其他的行内元素,将不指定基线(baseline),<img>标签因此会紧贴着父元素底部。 在标准模式中,行框总是会包含类似字母"g","f"尾巴下伸出来的那一部分空间(针对下行字母),即使行框内并没有任何内容。因此这种情况下你看到的<img>跟父元素底部几个像素的间隙实际上就是为”字母尾巴“预留的。 使用 XHTML Transitional Doctype会是浏览器运行在”几乎标准模式(Limited Quirks)”。如果你使用XHTML Strict 或者HTML 4 Strict模式,你将看到和使用HTML 5 模式同样的间隙,因为这是标准模式(Standards mode)。

解决方法:当然解决方式很简单,针对多出来的字母尾巴,设置行高或者字体大小为0(给div),或者设置对齐基线垂直居中(vertical-align:middle;),至于display:block,一般我是不太推荐的,因为变成块元素又得占一行了……

链接:https://www.zhihu.com/question/38437397/answer/76617831

以上是关于17.div包裹img后面空位???的主要内容,如果未能解决你的问题,请参考以下文章

png格式的img元素直接设置背景色border-radius等属性,不需再包裹div造成冗余

引用图片地址的时候要用require( )包裹起来

关于div包裹imgiframe等标签会多3px或4px的问题

使用 flexbox(无浮动)或其他任何东西将元素包裹在图像周围

POJ2828 Buy Tickets

php如何在img后面加br标签