美文网首页
Web 前端 a标签中使用img后的高度多了几个像素?

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

作者: EchoSpot | 来源:发表于2017-07-20 16:53 被阅读0次

    1.

    首先  a 是 inline 元素

    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,让它和匿名行级盒子不在一个布局上下文中,也就不存在行级盒的对齐问题

    其他解决办法也有,但这些都是从根本上解决问题

    来源:知乎  张丰麟ZFL

    2.

    这个主要是因为img是行内元素,它的下边缘默认是与基线对齐的,将img的display设置成block,或者将font-size设为0。也可以将a标签的display设置为block或者inline-block,并将其行高line-height设为0。

    来源:知乎 Feiyan Hu

    相关文章

      网友评论

          本文标题:Web 前端 a标签中使用img后的高度多了几个像素?

          本文链接:https://www.haomeiwen.com/subject/rdkjkxtx.html