滚动条出现在IE上,而它不应该出现

时间:2016-03-30 07:43:04

标签: html css css3

我有一个这个CSS类的左侧菜单:

.menu {
    overflow-y: auto;
    width: 210px;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    background-color: #7145A1;
}

在Firefox和Chrome上,只有在调整窗口大小时才会显示滚动条。在IE上,加载页面时会直接显示滚动条..

我忘记了什么吗?

2 个答案:

答案 0 :(得分:0)

不,你没有。 Internet Explorer只是以不同于Firefox或Chrome的方式处理css,结果是它始终显示滚动条。

解决方案是创建一个IE css标记,以防止这种情况发生!

<!--[if IE]>
// IE related css. 
<!--[endif]>

现在正好如何自己修理它,但你可能会找到一个回答者。请记住,如果您在IE中使用标签overflow:auto,这意味着它将始终在IE中可见。也许你可以创建一个调节滚动条的脚本,每当你调整脚本时,脚本会添加溢出标记,并在窗口达到一定大小时将其删除。它不是一个美丽的&#34;解决方案,但它可能有效;)

答案 1 :(得分:0)

滚动条移动了一下? 在这种情况下,可能是因为当您指定height:100%时,IE会设置内容高度并添加一点边距(什么是.menu元素?div?导航?) 因此,在这种情况下,您可以将box-sizing:border-box添加到您的班级(请注意跨浏览器兼容性!http://www.w3schools.com/cssref/css3_pr_box-sizing.asp ...您使用的I.E版本是什么?)。

如果滚动条被“锁定”(你无法滚动,它们只是显示),嗯,这很奇怪,通常overflow:auto只在必要时显示它......但IE确实很奇怪事情有时候。

另一点:在I.E 8之前,overflow属性不受支持,对于I.E 8,您应该使用-ms-overflow属性。所以在这种特殊情况下,我不知道默认值(它应该是visible,所以没有滚动条,但对于I.E我不知道......)

我希望我帮忙,