- ベストアンサー
Netscape6.02におけるiframeの%表示について
インラインフレームを使って、下の例のように%指定で表示させたいのですが、 Netscape7では問題なく表示されるのですが、Netscape6.02では表示されません。 (表示されないというか、0%と解釈されるようです。) サイズを%ではなくピクセルで指定すれば問題ないのですが、画面サイズにかかわらずフルサイズで表示されるようにしたいため、パーセンテージで指定したいのです。 何かいい方法をご存じの方がいたら、教えて下さい。 無理な場合は、Netscapeのバージョン7未満では別のページにジャンプさせるという方法でもかまいません。 よろしくお願いします。 (例) <html> <head></head> <body> <table width="100%" height="100%"> <tr> <td width="100%" height="100%"> <iframe src="http://www.okweb.ne.jp/" width="100%" height="100%"></iframe> </td> </tr> </table> </body> </html>
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず、基本的な事なのですが、最終的にどういうことがしたいのでしょうか? <body> <iframe src="http://www.okweb.ne.jp/" width="100%" height="100%"></iframe> </body> とした場合に、Pidetsuguさんのページではどの点が問題となるのでしょうか。 tableを入れる目的が分からないので、こうしたらいいというのは何とも言えません。 その上で、下記ソースについてなのですが、、 <html> <head></head> <body> <table width="100%" height="100%"> <tr> <td width="100%" height="100%"> <iframe src="http://www.okweb.ne.jp/" width="100%" height="100%"></iframe> </td> </tr> </table> </body> </html> まず、実際のHTMLで<!DOCTYPE~>等でHTML4.01等の文書宣言をしていないでしょうか? 宣言がしてあるとW3Cの定義とtable要素のheight属性の存在が矛盾してしまいますので、ブラウザの動作が変わる事があるかも知れません。 更に、table要素のheight属性はブラウザ毎に勝手に定義されている属性なので、"100%"が何に対しての割合なのか、これはブラウザ毎に違って当然です。 次に、td要素のweidth及びheight属性ですが、IE6では何故か無視されているようです。N7では親要素に対する%で機能しているようです。また、何故か縦方向のみセンタリングされて表示されます。 iframe要素のweidth及びheight属性は親要素に対する%として、IE6、N7において機能しているようです。 またiframeの変わりにobject要素を使っう方法もあり、これもブラウザによっては何か動作に差があるかも知れないのであわせて試されるとよいと思います。 以上、、少しでも参考になりますでしょうか。
その他の回答 (3)
- s_hukami
- ベストアンサー率66% (98/148)
すみません。 先ほどの訂正です。見苦しくてすみません。 「<meta http-equiv="Refresh"~」だとフレーム対応ブラウザでも移動してしまうので noframes>~</noframes>内に ==================================== <script type="text/javascript"> <!-- location.href = "contents.html"; // --></script> ======================== です。 IE3,NN2以上でサポートしているので、 念のためその下にリンクを記述しておけば良いと思います。 失礼いたしました。
お礼
詳しい説明ありがとうございました。 この方法を利用させていただきます。 またよろしくお願いします。
- s_hukami
- ベストアンサー率66% (98/148)
2回目の投稿です。 サイトURLが例えば「http://www.homepage.ne.jp/~hoge/」ならば <head>~</head>内に ================================= <meta http-equiv="Refresh" content="10;URL=http://www.homepage.ne.jp/~hoge/contents.html"> ================================= という記述をして <noframes>~</noframes>内に ================================= <p>フレーム未対応ブラウザの方は<a href="contents.html">こちらをクリック</a>してください。</p> ================================= と記述してみてはどうでしょうか。 「<meta http-equiv="Refresh"~」はサイト移転などの際にも役立ちます。 上記の記述だと10秒後に自動でジャンプします。 参考URLは「とほほのWWW入門」の<meta>に関するページです。
- s_hukami
- ベストアンサー率66% (98/148)
<head>から</head>の間に ================================= <style type="text/css"> body{ margin:0px;padding:0px; } table,iframe,{ margin:0px;padding:0px; } </style> =================================== と記述して「<body>から</body>」の中に =================================== <table boder="0" cellspacing="0" cellpadding="0" width="100%" height="100%"> <tr> <td width="200px" height="100%"> メニュー </td> <td height="100%"> <iframe src="http://www.okweb.ne.jp/" width="100%" height="100%"></iframe> </td> </tr> </table> ======================================= と記述します。 しかしこの場合 ================================================== <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <html> <head> <title>フレームテスト</title> </head> <frameset cols="200,*" framespacing="0" border="0" frameborder="0"> <frame src="menu.html" name="mainmenu"> <frame src="top.html" name="contents"> <noframes> <body> <p>申し訳ありませんが、フレーム未対応ブラウザでは閲覧できません。</p> </body> </noframes> </frameset> </html> ================================================== の方がすっきりするのではないでしょうか。 ちなみに、私は面倒ですが、<noframes>~</noframes>内に、別途コンテンツを記述していました。 しかし、なるべくならフレームじゃない方が望ましいという意見をサイト閲覧者からいただいたので、現在サイト移転に伴い、全ページノンフレームに書き換え作業中ですが。
お礼
ご回答ありがとうございます。 上記方法を試してみましたが、やはりNetscape6では表示されませんでした。 今回は、ご指摘のとおり、フレームを使用したいとお思います。 <noframes>~</noframes>内に別途コンテンツを記述するのも大変なので、 できればJavascript等で自動的にフレーム内のコンテンツに ジャンプするようにしたいと思っているのですが、 フレームを使えないようなブラウザでは、このようなことも無理でしょうか…?
お礼
ご回答ありがとうございます。大変参考になりました。 説明不足ですいませんでした。 tableを使ったのは、実際には例えば下の例ように、左側のセルにはメニュー、右側にはコンテンツというように分けたかったからです。 <table width="100%" height="100%"> <tr> <td width="200px" height="100%"> メニュー </td> <td width="99%" height="100%"> <iframe src="http://www.okweb.ne.jp/" width="100%" height="100%"></iframe> </td> </tr> </table> フレームを使えば容易にできるのでしょうが、フレームは非推奨とのことから、インラインフレームを使用しました。 もっと良い方法がありましたら、アドバイスをお願いします。 また、ご指摘の<!DOCTYPE~>につきましては、HTML4.01 Transitionalとなっていました。 そのため、別のバージョンに変えてみたところ、少しは表示されるようになりましたが、やはり縦については100%表示とはなりませんでした。 アドバイスをもとにいろいろ試してみたいと思います。 どうもありがとうございました。