如何去除这些图片之间的间隙?
如何去除这些图片之间的间隙?
为什么在以下代码中,div
的高度比img
的高度要大?图片下方有一段空白,但似乎不是由于padding/margin引起的。
图片下方的间隙或额外空间是什么?
#wrapper { border: 1px solid red; width:200px; } img { width:200px; }
问题:如何删除这些图片之间的间隙?
原因:默认情况下,图片标签()在垂直对齐属性(vertical-align)设置为baseline时,会在文本的基线上对齐,导致底部出现间隙。这是因为浏览器将图片视为替换元素(replaced element),并根据默认行为计算其display属性为inline,但它们具有类似于inline-block元素的特殊行为。
解决方法:可以通过以下方法之一来删除图片下方的间隙:
1. 将图片的垂直对齐属性(vertical-align)设置为bottom、top或middle。
2. 将图片的display属性设置为block。
以下是示例代码和演示效果:
#vAlign img { vertical-align: bottom; } #block img { display: block; } div { border: 1px solid red; width: 100px; } img { width: 100px; }
No fix:
![]()
With vertical-align: bottom; on image:
![]()
With display: block; on image:
![]()
运行代码示例
通过更改垂直对齐属性或display属性,可以删除图片下方的间隙。
需要注意的是,某些浏览器可能不会遵守font-size: 0的设置,而是根据用户设置将字体大小设置为最小值。因此,将font-size设置为0并不是一个好的解决方法。
以上是关于如何删除图片之间间隙的原因和解决方法的说明。
问题的出现原因是默认情况下,图像以行内方式呈现,与字母a、b、c和d位于同一行上。图像下方有空间用于字母g、j、p和q等具有下行部分的字母的显示。解决方法有两种:一种是调整图像的垂直对齐方式,将其定位在其他位置(例如中间);另一种是将显示方式更改为非行内显示。具体的CSS代码如下:
div { border: solid black 1px; margin-bottom: 10px; } #align-middle img { vertical-align: middle; } #align-base img { vertical-align: bottom; } #display img { display: block; }
在默认情况下,图像以行内方式呈现,代码如下:
Default
The quick brown fox jumps over the lazy dog![]()
如果将图像的`vertical-align`属性设置为`middle`,可以将图像垂直居中,代码如下:
vertical-align: middle
The quick brown fox jumps over the lazy dog![]()
如果将图像的`vertical-align`属性设置为`bottom`,可以将图像底部与行对齐,代码如下:
vertical-align: bottom
The quick brown fox jumps over the lazy dog![]()
如果将图像的`display`属性设置为`block`,可以使图像显示为块级元素,代码如下:
display: block
The quick brown fox jumps over the lazy dog![]()
需要注意的是,如果使用`vertical-align: bottom`或`middle`,如果图像很小(小于行高),可能会出现神秘的空白空间出现在图像上方。这取决于字体的具体情况。