- From: Michael A. Puls II <shadow2531@gmail.com>
- Date: Wed, 16 Jul 2008 19:04:42 -0400
- To: www-style@w3.org
Problem: Make an iframe or object's height expand to the height of its content Not a solution: height: 100% This doesn't work as intended because: 1. It's 100% of the frame's parent's height and not the framed document's height. 2. To make 100% expand to the size of the body (to kind of simulate that it's the height of the framed document), you have to be in quirks mode or use relative + absolute positioniing all the way down to the frame so that the height inheritance actually makes 100% do something useful. (I don't even remember the correct way to get that effect.) Better, but still unsatisfactory solution: Use Javascript Use Javascript load listeners on the framed document (and the initial load of the main document if needed). Then style the frame's height with its document.documentElements's offsetHeight as a reference. <http://www.google.com/search?q=iframe+auto+resize> It's a pain to get right for every situation (including situations where the framed document is on a different domain) across all browsers and it still requires JS. Real Solution: Opera supports a CSS -o-content-size property. You can use it like this: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> object { width: 100%; height: -o-content-size; display: block; } </style> </head> <body> <p><object type="text/html" data="content.html">Alternate content</object></p> </body> </html> -o-content-size adjusts the object's height to whatever the size of its content. It's an awesome feature and I'd love to see content-size supported by all browsers. (Not sure, but maybe IE, FF and Safari have similar extensions that do this.) -- Michael
Received on Wednesday, 16 July 2008 23:05:17 UTC