在测试了我为我的学校在Firefox、SeaMonkey、Chrome、Opera、Safari、Camino和IE8上建立的一个小网站后,我发现我的网站绝对定位的div都非常一致。
然而,当我开始在ie6和ie7中测试这个站点时,页面上所有的div都不合适,而且凌乱不堪。
我花了两周的时间在谷歌上搜索,试图找出问题所在,但是我仍然找不到一个一致的方法来解决这个问题。
希望我已经足够清楚了,对不起,如果我的英语不是很好,它是我的第三语言。
如果您需要更多的澄清,请随时询问。
我们非常感谢您的帮助。
谢谢你抽出时间。
注:如上所述,我知道有许多解决方案和类似的问题,但我还没有找到一个工作在这种情况下。
更新:zoom属性修复了我遇到的大多数问题,haslayout似乎是一个巨大的痛苦。谢谢你和帕特里克

最佳答案

这听起来像是经典的“haslayout”bug,它是每个必须支持旧版本ie的web开发人员生活中的祸根之一。
haslayout是一个内部标志,ie对每个元素都保持这个标志,它决定是正常显示还是出现奇怪的问题。事实上,这并不是它真正的目的,但它似乎确实有这样的效果。
解决这个问题的方法是强制相关元素获得haslayout标志。不幸的是,ie并没有提供一种直接的方式来实现这一点;您必须应用一种触发它的样式。
通常,人们选择的申请方式是

.myelelement {
    zoom:1;
}

其原因首先是zoom是一个特定于ie的样式表属性,所以这不会影响任何其他浏览器,其次是因为zoom:1;是默认值,所以您实际上没有更改元素的任何内容。尽管如此,它仍然会触发元素以获得haslayout标志,因此应该可以解决您的问题。
希望能有所帮助。

关于html - IE6和7绝对定位错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4871137/

10-08 23:56