IE bug: 消失的绝对定位元素
IE 一如既往地带来问题。真的,我觉得 IE 坚持自己的一套无所谓,不支持或者不完全支持标准也无所谓。但是,IE6 IE7 IE8 这三个版本都有各自不同的表现,实在是太让人难受了。
前两天碰到了这个奇怪的问题:
绝对定位的元素,紧邻着两个浮动元素。Firefox 中一切正常,IE6 中绝对定位元素消失了。本文来自前端观察,转载请以链接形式注明出处。
解决方法:只要别让绝对定位元素紧邻浮动元素就可以了。比如可以在绝对定位元素后面加个空元素。当然,这个空元素是毫无意义的,但是,在 IE 面前,又能怎么样呢?
经过实验,我发现,只要浮动元素的宽度不填满父元素,绝对定位元素就能正常显示,一旦浮动元素的宽度填满父元素,绝对定位元素就会消失。而且,看来,父元素宽度是这种情况发生的临界点。本文来自前端观察,转载请以链接形式注明出处。
另外,这个 demo 里面也存在 IE6 的另一个经典 bug : 由注释产生的表现不同。(唉,bug 都成经典了,IE 无敌啊。— 糖伴西红柿)本文来自前端观察,转载请以链接形式注明出处。
请看上面的图中,上面那块,就是有注释的,下面那块是去掉注释的,可以明显的看到底部的白色空白高度是不同的。
具体效果可参见 demo。
如果你喜欢本文,欢迎 订阅本站 以获得本站最新内容。


你好!站长,我从朋友的博客上找到你的网站
顺便跟你换个友情链接好吗?我已经做好你的了,希望我们合作愉快
我的网站叫
奇迹林
http://www.99n9.com
奇迹林是一个web应用与开发人员专业素材交流与共享的乐园
IE6,你必须死亡!!!
我直接就毙掉ie6/7/8了
很怪异啊。。。
试了一下,果然,真好玩。。。
短短的几百字的文章出现了三次【本文来自前端观察】,让我像吃了苍蝇一样恶心。
没有人愿意做这种吃力不讨好的活。当你连自己都不知道自己的文章被非法抄袭多少次的时候,我想你就可以理解我们的无奈了吧。另外,敢骂人却连名字都不敢留的装B者,一样让人恶心……
呃,不好意思,和看见你比起来,我宁愿吃了苍蝇。
这算什么啊?
有病吧
今天才知道还有这个bug,在这里学习了不少东西。
刚才测试了一下,
正如你所说:“只要浮动元素的宽度不填满父元素,绝对定位元素就能正常显示”,我测试时将父元素的像素递增1,直到父元素比浮动元素的总宽度大3px时,那个绝对定位的元素就显示了。
“3px”,在IE6面前好刺眼。。最后经过几次尝试,发现将最右边的浮动元素设置margin-right:-3px,可以不加空元素正常显示出定位的元素
又试了一下,设成margin-right:-2px就行了。。
设成margin-right:-1px就不行,真诡异
当父元素宽度比浮动元素宽1px时,设成margin-right:-1px又可以
IE6下,float元素相邻的position:absolute元素消失,子元全部float,absolute元素找不到自己的位置。可将absolute元素放置在浮动元素的后面,然后对其清除浮动。
这个方法好
display:inline
IE整个家族都该灭亡,IE9啥玩意啊,bug一大堆,并且哪天微软会像放弃XP一样对Win7说,IE12不支持Win7.