在div中嵌入100%高度的iframe具有奇怪的底边距

tmu*_*sch 11 html css

我想换一个iframe与元素height 100%width 100%div with fixed size.

我试过这样的:

<div style="height: 410px; width: 480px; border: 1px solid black; overflow: auto;">
    <iframe src="" style="border: none; background: blue;" height="100%" width="100%"></iframe>
</div> 
Run Code Online (Sandbox Code Playgroud)

使用较旧的doctypes它可以很好地工作,但是只要我添加HTML5 doctype <!DOCTYPE html>就会有一个令人不安的滚动条,它可以iframe在周围的div中上下移动整个元素,如果你完全向下滚动有一个奇怪的空间,我无法解释.

当我overflow: auto;从div风格中删除属性时,它也可以工作,但这不是解决方案.

我不明白的是为什么iframe元素下面有这个奇怪的空间/边距?

这是一个你可以自己尝试的演示:http://jsfiddle.net/tmuecksch/b5jgn/

我在Safari 7.0和Firefox 23.0.1中尝试过它.

CBr*_*roe 14

display:block为你的iframe元素添加- 没有它,它被渲染为一个内联框,因此空间留给了可能显示在同一行上的(假设)文本的字形长度不足的字形,如g,p,f等.

见小提琴:http://jsfiddle.net/b5jgn/2/

(vertical-align:bottom对于iframe也可以.)

  • 谢谢。这是最合格的答案。你是正确的。我假设iframe会被渲染为好像是一个块元素。但是正如您所说,它呈现为嵌入式框。 (2认同)