我正在尝试
<iframe height="100%" ...>
但它仍然无法调整大小。当我尝试使用像素高度时,它可以工作。
编辑:在IE上似乎100%正常工作,但不适用于Firefox。
我正在尝试
<iframe height="100%" ...>
但它仍然无法调整大小。当我尝试使用像素高度时,它可以工作。
编辑:在IE上似乎100%正常工作,但不适用于Firefox。
你可以使用CSS实现:
<iframe style="position: absolute; height: 100%; border: none"></iframe>
请注意,默认情况下,此操作会将其放置在页面的左上角,但我猜这就是您想要实现的效果。您可以使用CSS属性left
、right
、top
和bottom
来设置位置。
position:absolute
不是必要的,事实上,除非你确实需要显式地定位它,否则这不是一个好主意...只需在父容器上设置高度即可。 - Wes Johnsoniframes无法获得100%的高度的问题并不是由于它们笨重。问题是,为了使它们获得100%的高度,它们需要其父元素具有100%的高度。如果iframe的父元素中有一个高度不足100%,则iframe将无法超出该父元素的高度。
因此,最好的解决方案是:
html, body, iframe { height: 100%; }
如果iframe直接位于body下方,则可以不用设置父元素的高度,iframe将自动获取其父元素的高度。但是,如果iframe和body之间有其他父元素,则必须显式地将每个父元素的高度也设置为100%(如果需要的话)。
测试环境:
Chrome 30
、Firefox 24
、Safari 6.0.5
、Opera 16
、IE 7, 8, 9 和 10
注:我并不是要挑剔,但在撰写本文时,被标记为正确答案的解决方案在Firefox 24
上无法正常工作,但在Chrome 30
上可以。尚未在其他浏览器上进行测试。我在Firefox
上遇到了这个错误,因为我测试的页面内容很少...可能是我的标记太简单或者CSS
重置改变了输出结果,但如果我遇到了这个错误,我猜被接受的答案并不能在所有情况下都起作用。
更新于2021年
@Zeni在2015年提出了这个建议:
iframe { height: 100vh }
...的确奏效了!
要小心位置,因为它可能会破坏效果。请仔细测试,根据您想要实现的目标,您可能不需要定位。
height: 100%
属性的父元素就可以解决问题,而position: absolute
与此无关。 - choweyheight: 100vh;
解决了被忽略的height=100%;
问题(即使我在HTML文件中没有viewport
行)。我不需要定位... - Victoria Stuart