关于图片(Inline, replaced elements)与父框之间底部留白的问题

12 篇文章 0 订阅

如图:

这里写图片描述

原因:
IE(经测试 IE5 IE7+都会有留白)和其他浏览器在标准模式下(声明了<!DOCTYPE html>)在父框元素(block/inline-block/inline/table/table-cell)本身并没有显性的设置行高属性时,“line-height”的默认值为”normal”此时计算出来的行高是预留了文字基线高度的(想象有文字跟在后面),行内替换元素的基线直接与父框基线对齐,因此底部有一些间隙。

这里写图片描述
(IE8+及chrome firefox下父框为inline的表现, IE5 IE7表现的挺奇怪的,但是管它呢)

行内替换元素的基线与父框基线对齐是什么意思?(划重点 父框基线
这里写图片描述

什么是baseline?(英语作业本的第三根线就是baseline)
这里写图片描述
这里写图片描述

解决方法:
1.简单粗暴的将img(默认display:inline)设为display:block;(因为vertical属性只对inline元素和table-cell元素起作用)
2.之前说了由于父框基线是根据行内元素基线来定,所以将img的vertical-align设为除了baseline以外的值;
这里写图片描述
对于vertical-align:middle/top/bottom:上面说了计算出来的行高是预留了文字基线高度的,图片基线与文字基线对齐,此时显然在这些情况里,并不存在baseline那样留有小尾巴的行为。
3.由于产生空白间隙的原因是父框预留了文字基线,那么文字的高度决定了空白的高度:
这里写图片描述
这里写图片描述

所以:
将父框的font-size置为0就可以啦(同理 将父框(block/inline/inline-block/table)的line-height置为0也是同样的道理)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值