3

经过测试我在Firefox,SeaMonkey,Chrome,Opera,Safari,Camino和IE8上为我的学校建立的一个小网站后,我发现我的网站绝对定位的div都非常一致。IE6和7绝对定位问题

但是,当我开始在IE6和7测试站点时,所有的div在页面之外都是不合适的。

我已经花了两周的谷歌搜索,并试图找出问题是什么,但我仍然无法找到一致的方法来解决这个问题。

希望我已经够清楚了,对不起,如果我的英语不太好,那是我的第三语言。

如果您需要更多的解释,请随时询问。

任何和所有的帮助表示赞赏。

谢谢你的时间。

注意:如上所述,我知道有很多解决方案和类似的问题,但是,我一直无法找到适用于这种情况的解决方案。

更新:缩放属性修复了我一直遇到的大部分问题,hasLayout似乎是一个巨大的痛苦。感谢Spudly和Patrik

+1

您是否拥有正确的文档类型集?没有这个,IE忽略了很多CSS。 – GrandmasterB 2011-02-02 05:40:19

+0

我使用了HTML5 Doctype,我相信它是向后兼容的。我应该使用HTML4 Doctype吗? – 2011-02-02 05:46:50

+0

我刚刚玩过各种Doctypes,问题仍然存在。任何其他建议? – 2011-02-02 05:55:08

回答

5

这听起来像是经典的“HasLayout”错误,这是每个Web开发人员生活中必须支持IE旧版本的障碍之一。

HasLayout是一个内部标志,IE保存每个元素,以确定是否正常显示它或奇怪的毛刺。其实这不是它真正存在的,但它似乎确实有这种效果。

解决问题的方法是迫使有问题的元素获得HasLayout标志。可悲的是,IE并没有提供直接的方式来做到这一点;你必须应用触发它的风格。

通常情况下,风格的人选择报考这是

.myelelement { 
    zoom:1; 
} 

这种情况的原因在于,首先,zoom是IE特定的样式表属性,所以这不会影响任何其他浏览器,并其次,因为zoom:1;是默认值,所以你实际上并没有改变任何有关元素的内容。尽管如此,它仍然会触发获取HasLayout标志的元素,因此应该可以解决您的问题。

希望有所帮助。

2

我听说过一些老版本的IE中可能会导致你的问题的布局属性的错误......已经有类似的话题:link。试试看,我不认为绝对定位存在问题,它可能是父亲相对定位元素的缺陷。