私はこの問題をウェブ上で見ましたが、提案されたすべての解決策は私には役に立たないので、ここに来ると思いました。
Iframeがあるページがあります。ページの上部はドロップダウンメニューで、ページの残りはiframeです。私が他の誰もが確信しているようなアイデアは、メニューを固定したままにし、メニュー選択によりiframeでアプリケーションを実行することです。 iframeのコンテンツはスクロールしますが、ページ全体はスクロールしません。
Iframeを入れてみましたwidth=height=100%
単一のテーブル要素内でwidth=height=100%
しかし、ウィンドウを垂直方向に短くしすぎると、2つのスクロールバーが表示されます。
助言がありますか?
私は自分自身をうまく説明しなかったと思います。 iframeのスクロールバーを自動として保持したいのですが、ページ全体のスクロールバーが必要になることはありません。 iframeが適切にサイズ調整され、ページの残りの部分が常に正確に表示されるようにする必要があります。iframeが表示領域の底からはみ出してはならないため、ブラウザはスクロールバーを作成する必要がありません。
更新:
デモ:http://jsbin.com/ewomi3/3/edit
[〜#〜] html [〜#〜]
<table border=0 cellspacing=0 cellpadding=0 id="hold_my_iframe">
<iframe src="http://www.w3schools.com/css/tryit.asp?filename=trycss_overflow" width=100% height=100% marginwidth=0 marginheight=0 frameborder=0></iframe>
</table>
[〜#〜] css [〜#〜]
* { margin:0 padding:0 }
body { margin:0; padding:0; text-align:center }
#hold_my_iframe { padding:0px; margin:0 auto; width:100%; height:100% }
注:私は最終的にあなたが望むものを理解しました!コンテナとしてtable
タグの代わりにdiv
タグを使用してください!デモを見て楽しんでください!
スクロールバーを削除するフレームでcssオーバーフローを非表示に設定します...
overflow:hidden
私はこれが少し古いことを知っていますが、ここに私のページのためにしたことを示します:
IFrameだけのページがあり、ページ全体を占めるようにしたかったので、
<iframe style="height:100%;width:100%" src="..."></iframe>
適切なパディング/マージン/境界線の削除を追加した後、説明した二重スクロールバーの問題が発生しました。 Chromeの検査機能を使用して、ページの本文がiframeよりも約5px長いことを発見したため、iframeコードを変更しました。
<iframe style="height:100%;width:100%;margin-bottom:-5px;" src="..."></iframe>
それ margin-bottom:-5px;
私のために問題を修正しました。
まだこの二重スクロールバーの問題を抱えている人にとって、あなたがしなければならないことは、overflow:hiddenの要素でiframeをラップし、html、body、iframe、ラッパーに100%の高さを追加することです。
http://jsfiddle.net/KZ5wz/ (JsFiddleで結果が適切に表示されない理由はわかりませんが、私のマシンではチャームのように動作しています)
<style type="text/css">
body {margin:0; overflow: hidden;}
iframe {border: none;}
</style>
<body>
<iframe height="100%" width="100%" src="yourframe1.html"></iframe>
<iframe src="yourframe2.html" width="100%" height="100%"></iframe>
</body>
要件は明確です:
私の解決策は非常に簡単です:
overflow:hidden;
_でウィンドウのスクロールバーを非表示にします。height: calc ( 100% - 120px );
として計算するのが最適です。 iframeの周りのラッパーは、divまたは幅100%、高さ100%のテーブルにすることができます。Iframeの高さを(ウィンドウの)80%に設定した私の例を次に示します。
_body {
overflow: hidden;
}
#hold_my_iframe {
padding:0px; margin:0 auto; width: 100%; height: 100%; overflow:scroll;
}
_
_<table border="0" cellspacing="0" cellpadding="0" id="hold_my_iframe">
<iframe src="http:/example.com/my-iframed-page.php"
width="100%" height="80%"
marginwidth="0" marginheight="0" frameborder="0"></iframe>
</table>
_
本体を削除{高さ:100%; }
この質問には何とか答えられていないので、私は10セントを投じるだろうと考えました。私はあなたがdisplay:block
/display:inline
設定。あなたの質問を完全に理解していないので、どうやってこれを行うかは正確にはわかりませんが、iframe
をinline
の表示に変更したいと思うかもしれません。
さて、質問は古いですが、今日は同じ問題がありましたが、答えはどれも私の問題を解決しませんでした。内部ページ(同じドメイン)のみで、2つの垂直スクロールバーも表示されました。読み込まれたページをナビゲートするもの(正しい)と、iframeゾーンの高さを少し調整するもの(!)...外部ソースページでは、うまく機能しているようです。
この問題を修正した方法は、次のように、ロードする内部ページの本文にクラスを追加することでした
<body class="internalPage">
cSSファイルに次の行を追加します
body.internalPage{height: 99.5%;}
これが将来誰かに役立つことを願っています。
Iframeの高さを動的に割り当てることで、ダブルスクロールバーの問題を解決しました。