私はiframeを持っています。コンテンツは私が設定している幅よりも広いため、iframe は水平スクロール バーを取得します。iframe の幅を広げることができないので、スクロール バーを削除したいだけです。スクロール プロパティを「いいえ」に設定しようとしましたが、両方のスクロール バーが無効になり、垂直スクロール バーが必要です。オーバーフローxを「非表示」に設定しようとしましたが、IEではなくffで水平スクロールバーを殺しました。私にとって悲しい。
6 に答える
scrolling="yes" horizontalscrolling="no" verticalscrolling="yes"
それを iFrame タグに入れます。
これを CSS でフォーマットしようとしていじる必要はありません。
スクロールバーは のプロパティではなく、<iframe>
含まれるページのプロパティです。内側のページの要素を入れoverflow-x: hidden
てみてください。<html>
iframe を div 内に配置してから、スクロールに div を使用できます。IE で div のスクロールを問題なく制御できます。IE では、iframe のスクロールにのみ問題があります。トリックを行う簡単な例を次に示します。
<html>
<head>
<title>iframe test</title>
<style>
#aTest {
width: 120px;
height: 50px;
padding: 0;
border: inset 1px #000;
overflow: auto;
}
#aTest iframe {
width: 100px;
height: 1000px;
border: none;
}
</style>
</head>
<body>
<div id="aTest">
<iframe src="whatever.html" scrolling="no" frameborder="0"></iframe>
</div>
</body>
</html>
<iframe style="overflow:hidden;" src="about:blank"/>
IEで動作するはずです。IE6には、overflow-xとoverflow-yのサポートに問題がありました。
もう1つ注意すべき点は、iframe上のIEの境界線は、キャメルケースで「frameborder」属性を設定した場合にのみ削除できることです。
<iframe frameBorder="0" style="overflow:hidden;" src="about:blank"/>
CSSで適切にスタイルを設定できればいいのですが、IEでは機能しません。
これらの解決策はすべてうまくいかなかったか、満足のいくものではありませんでした。スクロール可能な DIV を使用すると、水平スクロールバーをなくすことができますが、その場合は常に垂直スクロールバーが表示されます。
したがって、すべての iframe の固定高さを確実に制御できる私のサイトでは、次のソリューションは非常にうまく機能します。DIVで水平スクロールバーを非表示にするだけです:)
<!-- This DIV is a special hack to hide the horizontal scrollbar in IE iframes -->
<!--[if IE]>
<div id="ieIframeHorScrollbarHider" style="position:absolute; width: 768px; height: 20px; top: 850px; left: 376px; background-color: black; display: none;">
</div>
<![endif]-->
<script type="text/javascript">
if (document.getElementById("idOfIframe") != null && document.getElementById("ieIframeHorScrollbarHider") != null)
{
document.getElementById("ieIframeHorScrollbarHider").style.display = "block";
}
</script>
iframe 内に含まれるページの本文の幅を 99% に設定することもできます。