Internet explorer 可怕的iframe水平滚动条可以';不能在IE中删除吗?
我有一个iframe。内容比我设置的宽度宽,因此iframe获得一个水平滚动条。我不能增加iframe的宽度,所以我只想删除滚动条。我尝试将scroll属性设置为“否”,但这会杀死两个滚动条,我想要垂直滚动条。我尝试将overflow-x设置为“hidden”,结果在ff中关闭了水平滚动条,但在IE中没有。我很难过。您可以尝试将iframe放在div中,然后使用div进行滚动。您可以在IE中控制div上的滚动,没有问题,IE只在iframe滚动上有问题。下面是一个简单的例子,应该可以做到这一点Internet explorer 可怕的iframe水平滚动条可以';不能在IE中删除吗?,internet-explorer,iframe,Internet Explorer,Iframe,我有一个iframe。内容比我设置的宽度宽,因此iframe获得一个水平滚动条。我不能增加iframe的宽度,所以我只想删除滚动条。我尝试将scroll属性设置为“否”,但这会杀死两个滚动条,我想要垂直滚动条。我尝试将overflow-x设置为“hidden”,结果在ff中关闭了水平滚动条,但在IE中没有。我很难过。您可以尝试将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测试
#aTest{
宽度:120px;
高度:50px;
填充:0;
边框:插图1px#000;
溢出:自动;
}
#最新iframe{
宽度:100px;
高度:1000px;
边界:无;
}
滚动条不是
的属性,而是它所包含页面的属性。尝试将overflow-x:hidden
放在内部页面的
元素上。
<iframe style="overflow:hidden;" src="about:blank"/>
应该在IE中工作。IE6在支持overflow-x和overflow-y时出现问题
另一件需要注意的事情是,只有在camelCase中设置“frameborder”属性时,才能删除iframe上的IE边框
<iframe frameBorder="0" style="overflow:hidden;" src="about:blank"/>
如果你能用CSS正确地设计它的样式,那就太好了,但它在IE中不起作用
scrolling="yes" horizontalscrolling="no" verticalscrolling="yes"
把它放在你的iFrame标签上
你不必费心在CSS中格式化它。所有这些解决方案对我都不起作用或不令人满意。使用scrollable DIV,您可以使水平滚动条消失,但始终使用垂直滚动条 因此,对于我的站点,我可以确保控制所有iFrame的固定高度,下面的解决方案非常有效。 它只是用一个DIV隐藏水平滚动条:)
if(document.getElementById(“IDOFirrame”)!=null和&document.getElementById(“ieIframeHorScrollbarHider”)!=null)
{
document.getElementById(“ieIframeHorScrollbarHider”).style.display=“block”;
}
您也可以尝试将iframe中包含的页面正文宽度设置为99%。在我的情况下,我想删除x滚动条,但不删除y滚动条,我相信设置溢出隐藏将同时删除这两个滚动条。我的答案正确吗?谢谢你的解答。唯一的问题是您必须为iframe内容定义一个固定的高度,在我的例子中,这个高度会有所不同。我将使用这个,并且必须为iframe指定一个额外的大高度,这有点粗糙。但非常感谢这让我达到了目的。虽然水平滚动和垂直滚动属性在MSDN上完全没有记录,但这解决了我的IE 6问题。很好的解决方案,正是我所寻找的,tyvm。IE10上有一个问题(是的,我们的客户仍然使用它),我们在iframe中显示一些自定义HTML5广告。这样做对我们不起作用……这个解决方案更好,可以使iframe代码更轻,并且有利于封装。我不需要记住添加和记住语法。我同意@DannyG。我们已经超越了标记中表示属性的时代。纯CSS解决方案更可取,原因有很多。这是一个更好的解决方案,可以让你的html保持有效
<!-- 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>