标题:解决XHTML的框架下出现横向滚动条问题 文章出处:Azuresky 时间:Wed, 16 Jan 2008 20:43:39 +0000 作者:Tim 地址:http://www.azuresky.com.cn/WebSiteLog-TheXhtmlScroll/ 内容:   如果,你的页面上使用了frame或者iframe,使用IE6浏览,将可能出现非常不美观的横向滚动条。那么你有可能会使用scrolling="no"这个属性,但这样讲会导致连竖向的滚动条都不见了。好,那也有可能在body标签或css里面定义overflow-x: hidden; overflow-y: auto;这两个参数,但是仍旧那讨厌的横向滚动条还在。   这是为什么呢?原来,在用IE6浏览有框架的XHTML页面的时候,默认会水平和垂直滚动条会一起出现,这是IE6的一个漏洞,你在Firefox上浏览你的网站是正常的,而IE6对XHTML 1.0 Transitional DOCTYPE的解释缺陷.   我的博客“音乐版”使用了框架模式,而能在点击超链接后不让音乐停止播放。 因此也遇到了在IE6下浏览出现横向滚动条。为了解决这问题,Google了一番,发现非常多朋友都遇到此问题,而这些朋友用我以上说的那些方法都无法解决这个IE6浏览框架页面出现横向滚动条问题,也有的朋友把DOCTYPE声明或改成html 4.01,似乎也无效,还有的干脆直接去掉DOCTYPE声明,这个好像行。但这样似乎在别的浏览器或一些状态下会出现问题。   我从中找到了以下三种不仅解决了这个问题,而且你的页面用XHTML 1.0 Transitional 声明也没问题的方法。 以下为引用部分 方法1: html { overflow-y: scroll; } 原理:强制显示ie的垂直滚动条,而忽略水平滚动条 优点:完全解决了这个问题, 允许你保持完整的XHTML doctype. 缺点:即使页面不需要垂直滚动条的时候也会出现垂直滚动条。 方法2: html { overflow-x: hidden; overflow-y: auto; } 原理:隐藏横向滚动,垂直滚动根据内容自适应 优点:在视觉上解决了这个问题.在不必要的时候, 未强制垂直滚动条出现. 缺点:只是隐藏了水平滚动条,如果页面真正需要水平滚动条的时候, 屏幕以外的内容会因为用户无法水平滚动,而看不到。 方法3: body { margin-right: -15px; margin-bottom: -15px; } 原理:这会在margin的水平和垂直方向上添加一个负值, IE添加了该精确数值后, 便会去除对滚动条的需求假象. 优点:在视觉上解决了这个问题.,垂直滚动根据内容自适应 缺点:由于"人为创建"了15px的外边距(margin), 所以无法使用该填充过的屏幕区域. 你可根据这三种方法的优缺点选择一种合适你的方法解决在IE6下用框架做的页面出现横向滚动条问题。 Generated by Bo-blog 2.1.1 Release