为什么img放在 li中,底部会多出几个像素?

13 篇文章 0 订阅
4 篇文章 1 订阅

<li><img src="img/1.jpg" style="height: 60px"/></li>

当使用以上布局时,会发现li的高度会比img的高度大几个像素。出现这种问题的原因是:

img默认是一个行内元素"display: inline",也就是跟文本的默认行为类似。文本的底端不是与父容器的底端对齐的,而是与基线对齐。我们可以用英文的四线格的最下面那条线来表示父容器的底端,用倒数第二条线来代表基线,所写的单词都是与基线对齐的。既然img与文本的默认行为类似,底端是与基线对齐的,那么就会出现img的底端与父容器的底端还有一段距离(空白)。

知道了原因,那么这个问题就比较好解决了:

  1. 可以改变img的默认样式"display: inline"为"display: block"。img的行为不与文本类似,那么就不用基于基线对齐了。

  2. 将基线(baseline)与底端(bottom)的距离设为0。可以把line-height(即top与buttom的距离)设置为0,那么baseline与bottom的距离也就变成0了。

  3. 将字体大小设为0(font-size: 0)可以实现。在没有设置line-height时,line-height的默认值是基于font-size的。所以将font-size设为0也可以解决,但是这样做就不可以进行图文混编啊了。

  4. 将img的vertical-align设置为其他值。如果同一行里有文字混编的话,还是设为bottom和middle比较好。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值