How do you give iframe 100% height
The iFrame attribute does not support percent in HTML5. It only supports pixels. http://www.w3schools.com/tags/att_iframe_height.asp
The problem with iframes not getting 100% height is not because they're unwieldy. The problem is that for them to get 100% height they need their parents to have 100% height. If one of the iframe's parents is not 100% tall the iframe won't be able to go beyond that parent's height.
So the best possible solution would be:
html, body, iframe { height: 100%; }
…given the iframe is directly under body. If the iframe has a parent between itself and the body, the iframe will still get the height of its parent. One must explicitly set the height of every parent to 100% as well (if that's what one wants).
Tested in:
Chrome 30
, Firefox 24
, Safari 6.0.5
, Opera 16
, IE 7, 8, 9 and 10
PS: I don't mean to be picky but the solution marked as correct doesn't work on Firefox 24
at the time of this writing, but worked on Chrome 30
. Haven't tested on other browsers though. I came across the error on Firefox
because the page I was testing had very little content... It could be it's my meager markup or the CSS
reset altering the output, but if I experienced this error I guess the accepted answer doesn't work in every situation.
Update 2021
@Zeni suggested this in 2015:
iframe { height: 100vh }
...and indeed it does the trick!
Careful with positioning as it can potentially break the effect. Test thoroughly, you might not need positioning depending of what you're trying to achieve.
You can do it with CSS:
<iframe style="position: absolute; height: 100%; border: none"></iframe>
Be aware that this will by default place it in the upper-left corner of the page, but I guess that is what you want to achieve. You can position with the left
,right
, top
and bottom
CSS properties.