a标签中使用img后的高度多了几个像素

a元素下有一个匿名文本,这个文本外有一个匿名行级盒子,它有的默认vertical-align是baseline的,并且每每由于上文line-height的影响,使它有个line-height,从而使其有了高度,由于baseline对齐的缘由,这个匿名盒子就会下沉,往下撑开一些距离,因此把a撑高了。

解决办法一是消除掉匿名盒子的高度,也就是给a设置line-height:0或font-size:0;
解决办法二是给二者vertical-align:top,让其top对齐,而不是baseline对齐
解决办法三是给img以display:block,让它和匿名行级盒子不在一个布局上下文中,也就不存在行级盒的对齐问题


做者:大地Dudy
连接:http://www.zhihu.com/question/26821863/answer/65552730
来源:知乎
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

img标签有时候会出现下方平白无故多出像素的BUG布局

  1. 解决方法1:it

    设置 img 的 vertical-align: bottom;io

    ul{ width: 280px; font-size: 0; } ul li{ display:block; height:57px; width:277px; } img{ vertical-align:bottom; }table

  2. 2

    解决方法2:class

    设置 img 的 margin-bottom: -5px;float

    ul{ width: 280px; font-size: 0; } ul li{ display:block; height:57px; width:277px; } img{ margin-bottom: -5px; }方法

  3. 3

    解决方法3im

    设置 ul 的 font-size:0;margin

    ul{ width: 280px; font-size: 0; } ul li{ display:block; height:57px; width:277px; }top

  4. 4

    解决方法4

    使li浮动,并设置img为块级元素

    ul{ width: 280px; } ul li{ float:left; display:block; height:57px; width:277px; } img{ display: block; }

相关文章
相关标签/搜索