我有一个iframe,其内容宽度大于我设置的宽度,因此iframe会出现水平滚动条。由于我不能增加iframe的宽度,因此我想删除滚动条。我尝试将scroll属性设置为“no”,但这会同时关闭垂直和水平滚动条,而我只需要垂直滚动条。我尝试将overflow-x设置为“hidden”,这可以在ff中去除水平滚动条,但在IE中无法起作用。对我来说很遗憾。
我有一个iframe,其内容宽度大于我设置的宽度,因此iframe会出现水平滚动条。由于我不能增加iframe的宽度,因此我想删除滚动条。我尝试将scroll属性设置为“no”,但这会同时关闭垂直和水平滚动条,而我只需要垂直滚动条。我尝试将overflow-x设置为“hidden”,这可以在ff中去除水平滚动条,但在IE中无法起作用。对我来说很遗憾。
scrolling="yes" horizontalscrolling="no" verticalscrolling="yes"
滚动条不是 <iframe>
元素的属性,它是该元素所包含页面的属性。尝试在内部页面的 <html>
元素上添加 overflow-x: hidden
属性。
<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>
所有这些解决方案对我来说都没有用或者不够令人满意。使用可滚动的 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 style="overflow:hidden;" src="about:blank"/>
应该在IE中正常工作。 IE6在支持overflow-x和overflow-y方面存在问题。
另一个需要注意的事项是,如果您使用驼峰命名法设置"frameborder"属性,则可以删除iframe上的IE边框。
<iframe frameBorder="0" style="overflow:hidden;" src="about:blank"/>
如果能够使用CSS进行正确的样式设置将会很好,但在IE中会出现问题。
您也可以尝试将包含在 iframe 中的页面主体宽度设置为 99%。