2011-07-15 11 views
6

2番目のページを埋め込んだiframeで再生していて、iframeの上に短いヘッダーが表示されます。なぜiframeの高さがXHTMLページで機能しないのですか?

height="100%"は正常に動作し、別の設定では正しく動作しませんでした。I noticed that iframeの高さが常に150pxに設定されていた1つのドキュメントがXHTMLドキュメントでした作品にDOCTYPEが設定されていません。 (完全にウィンドウにスケーリング高さ)

<html> 
<head> </head> 
<body> 
<h1>Wrapper Header ...</h1> 
<hr/> 
<iframe src="/jenkins" width="100%" height="100%"> 
    <p>iframes not suppoerted</p> 
</iframe> 
</body> 
</html> 

と、このはない(高さ約150ピクセル程度)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> </head> 
<body> 
<h1>Wrapper Header ...</h1> 
<hr/> 
<iframe src="/jenkins" width="100%" height="100%"> 
    <p>iframes not suppoerted</p> 
</iframe> 
</body> 
</html> 

ディスプレイには、IE8で同じです行います

ので、これは動作しますFF5。

なぜ XHTMLのdoctypeがある場合、高さのパーセンテージが機能しなくなるのですか?

答えて

13

ページが有効なDTDを持つ標準モードでレンダリングするためです。他のモードで動作した理由は、それがquirksモードであったためです。

クォークモードで動作するのは、ブラウザが非常に寛大で過去に厳しくなかったため、人々は過去にhtml/bodyの高さを指定せずにheight="100%"でした。

これを行う適切な方法は、html/bodyの高さを設定することです。何かのようなものを試すhtml, body { height:100%; }

iframeは、これが起こるためには直下の子供である必要があります。あるいは、絶対に/固定して配置することもできます。

+0

html/bodyの高さのことを言及いただきありがとうございます。 –

+1

しかし、 'iframe'やその中に読み込まれるページを含むページのhtml/bodyの高さを設定する必要がありますか? –

+0

高さ100%は機能しませんでしたが、私の場合はiframeでposition absoluteを使用しました。ありがとう! –

関連する問題