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

代码如下:

<!--顶部广告-->

<div class="top_ad">
<a href="javascript:;" class="close_ad">关闭</a>
<a href="http://shop.hisense.com/special_activity_page/shuang1111yushou.html">
<img src="img/top_ad.jpg"/>
</a>

</div>

css部分:

     /*顶部广告*/
.top_ad{
width: 100%;
position: relative;
}
.close_ad{
position: absolute;
right: 10px;
top: 10px;
padding: 3px 7px;
background: #000;
color: #fff;
font-size: 14px;
}
.top_ad img{
width: 100%;
/*display: block;*/
}

重置样式代码省略。未加入css样式红色部分时,div的高度比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
链接:https://www.zhihu.com/question/26821863/answer/65552730
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值