我创建了一个页面,该页面具有与DiggBar类似的功能(即指定的height
的标题和下面的iframe
填充页面的其余部分)。
我花了一段时间进行了这项工作,得到了预期的结果,但突然之间,iframe
的height
从剩余页面height
的100%
变成了只有44.8px
。问题是这种情况只发生在一个浏览器中—Ubuntu上的Firefox。
我认为这应该在所有其他浏览器中发生,但事实并非如此。它在IE、FF和&Windows上的Chrome和Ubuntu上的Chrome。
最后,使用Firebug,我选择了inspect element
来尝试确定发生了什么,但它只是告诉我我的height
被定义为100%
,但它被计算为仅为44.8px
。
我正在寻找一些关于如何最好地调试这个问题的指导,因为我已经完全没有想法了。我不认为有必要发布所有产生这个问题的代码,但如果绝对需要,请询问。
谢谢。
不幸的是,级联样式表的Cascading部分让我失望了。我对iframe
的父级有另一个(我们称之为"隐藏")引用,这导致了奇怪的height
计算问题。
有趣的是,这只发生在我的Ubuntu版本的Firefox中。
如果布局结构复杂,将所有div的高度设置为100%可能会破坏页面布局。在这种情况下,我建议使用javascript将iframe的高度设置为100%。在我的案例中,我使用了JQuery,但我认为纯JavaScriptDOM函数也应该起作用。我将iframe的高度设置为等于父div高度:
$('#doc-preview iframe').height($('#doc-preview').height());
这里的文档预览是iframe的父div的id。
请确保在加载页面后运行此脚本。