7 个回答

http://jsfiddle.net/o8dk3z4u/2/

因为img默认是按基线(baseline)对齐的。对比一下图片和右边的p, q, y等字母,你会发现这三个字母的“小尾巴”和图片下方的空白一样高。下面这张图中的黑线就是那条基线。

图片描述

要去掉空格可以使用vertical-align: bottom或将img标签变为块级元素。

至于什么是基线,还记得四线三格的英语写字本么?中间第三条线就是基线。

图片描述

设置img的display属性为block就能fix这个问题了。

因为img 标签 是inline 元素, inline元素默认是baseline对齐的。 当baseline对齐的时候 下方会有4px 的空隙。就是你说的白块。

<style>
.thumb { font-size: 0; line-height: 0; }
</style>
<div class="thumb">
    <img src="http://example.com/1.gif" width="100" height="100" />
</div>
新手上路,请多包涵

所有inline,inline-block都会有这个问题,该问题会受到lineheight、fontsize以及vertical-align的共同影响,不是BUG,而是对齐的标准

http://jsfiddle.net/bg0ogjwu/

img {
  width: 180px;  
  background: #ccc;
  height: 100%;
  /* 方案1:display:block; */
  /* 方案2:vertical-align:bottom; */
  /* 方案3:img元素设定height: 100%;  父元素设定height:180px */
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏