<div><iframe style="height: 100px"></iframe></div>
<div style="line-height: 0"><iframe style="height: 100px"></iframe></div>
如果您检查DOM,您可以看到第一个div的高度为108px,而第二个div的高度为104px。带边框的iframe是104px,那么为什么在设置行高时添加4个额外像素?
在Mac上测试Chrome 28.0.1500.71。
答案 0 :(得分:3)
因为iframe位于基线上。但是div必须高到足以包含strut,它也会低于基线,并且其高度由行高确定。
0 line-height = 0px strut height = 0px支柱低于基线。
使用iframe { display:block; }
或iframe { vertical-align:top; }
或iframe { vertical-align:bottom; }
来阻止这种情况发生。
(显示:阻止线条框停止创建,因此没有支柱.vertical-align:top和vertical-align:bottom释放支柱与iframe共享线框的基线,因此支柱被放置如果行高超过iframe高度,则strut将强制行框高度,因此div高度仍然大于iframe高度,无论垂直对齐设置如何)
答案 1 :(得分:2)
在Chrome 28中,这两个div似乎都是109px高。请记住,vertical-align
元素的默认<iframe>
值和所有内联元素都是基线 - 将此值更改为底部会将两个元素对齐你可能期望的。
答案 2 :(得分:0)
这可能取决于您的浏览器。使用Firefox和Chrome,两个IFRAME元素的高度均为104像素(100px + 4px的边框)。
您使用的浏览器是什么?你试过border =“0”吗?