【IE6的疯狂系列】IE6下position:absolute相邻元素margin-top失效的bug

时间:2010年08月24日作者:愚人码头查看次数:5,420 views评论次数:9

昨天发现了一个ie6的bug,绝对定义(position:absolute)的相邻元素margin-top竟然会失效;

看demo把(请用ie6围观):http://www.css88.com/demo/absolute-bug/absolute-bug.html

这里有几个条件:

  1. 相邻元素是有width属性的,如果去掉width属性,margin-top又会生效,点击查看:http://www.css88.com/demo/absolute-bug/absolute-bug-1.html
  2. 增加相邻元素浮动,margin-top也会又会生效;点击查看:http://www.css88.com/demo/absolute-bug/absolute-bug-2.html

如果没有复杂的背景什么的可以使用padding-top替换margin-top;

还可应在相邻元素间插入一个空标签的方法:


<div style="position: absolute; width: 500px; top: 0; left: 0; height: 30px; background-color: #666;">此处显示新 Div 标签的内容</div>
<!--[if IE 6]>
<div></div>
< ![endif]-->
<div style="margin-top: 35px; width: 100px; float: left; background-color: #3fc;">此处eeeeeeeee显示新 Div 标签的内容</div>

点击查看:http://www.css88.com/demo/absolute-bug/absolute-bug-4.html

————————————————
另赠送一个IE6下与float元素相邻的position:absolute元素消失BUG
围观地址:http://blog.dengsa.com/?p=342 http://www.webchina110.cn/?p=105

声明: 本文采用 BY-NC-SA 协议进行授权 | WEB前端开发
转载请注明转自《【IE6的疯狂系列】IE6下position:absolute相邻元素margin-top失效的bug

如果你读了我的文章,觉得有帮助: 说明
分类:html+css
9条评论
  1. 小山留言于:2010年08月24日11:20

    嗯~希望码头多多发些bug

    占沙发~

    [回复]

  2. Jayuh留言于:2010年08月24日14:12

    发现最近WEB前端开发更新的慢了。

    [回复]

  3. lin04com留言于:2010年08月24日17:19

    好像ie7下面也有这个bug.以前好像也碰到过,没有注意,用其他办法绕过去了。

    [回复]

  4. crossyou留言于:2010年08月25日08:31

    为了验证下,切到winxp ie6一试,果然如此。
    以前还真没注意过。

    [回复]

  5. lino87留言于:2010年08月25日10:55

    把第二个div也定义绝对定义(position:absolute)也能解决这个问题,估计是第一个绝对定义之后,第二个不定义一下它会找不到合适的位置,呵呵~~~万恶的ie6赶快淘汰吧

    [回复]

  6. web前端寒风留言于:2010年08月28日11:47

    主要原因是第二个div自动被添加了浮动,所以可以给第一个与第二个div间加个清除浮动的可以了。如:

    [回复]

  7. goodcza留言于:2010年08月29日11:54

    初学者,很纠结如何使各浏览器的元素间距精确一致???

    [回复]

  8. Lynn留言于:2010年09月08日14:28

    之前遇到过这个问题,但都没注意是怎样解决的。

    It’s really helpful!

    [回复]

  9. 左手右手留言于:2011年07月19日22:10

    前段时间做项目的时候发现IE6下,用了float后,相邻元素使用position:absolute时会消失,忘记当时是怎么解决的了,呵呵 不过又学到了一些知识,谢谢码头大虾

    [回复]

发表评论

*

*