IE6备忘录——IE6下的BUG们

创建日期2010年4月22日,最后更新2010年4月22日

序言

几乎每次面试,面试官都会问到,你在IE6下碰到过什么BUG,你是如何解决的?IE6实在是太特殊了,下面就记录一些IE6下的琐事吧。

IE6小传

IE6于2001年3月发布beta版本,2001年8月27日发布最终版本,并被捆绑在Windows XP系统上。由于XP的巨大成功,伴随着竞争对手Netscape的衰落,IE6很快占领了九成以上的浏览器市场。由于IE6已经处于绝对的统治地位,微软放缓了IE的开发进度,2006年10月18日IE7才正式发布。

IE7的诞生标志了又一次浏览器的竞争高潮的到来,Netscape的私生子Firefox、Mac下的Safari都有一定的市场规模,随后Google牵头促成浏览器开源项目Chromium,随后发布了Chrome浏览器。微软也加快了IE的步伐,2009年3月19日发布IE8最终版本,随后又马不停蹄的投入到IE9的开发中。

IE6作为上一代浏览器的最后遗老,生命力异常顽强。无论浏览器市场如何变化,IE6的统治地位自发布以来就从来没有被撼动过,在国外一直保持六成左右的装机率,国内市场至少八成以上,IE6无疑会在浏览器历史上留下厚重的一笔。

IE6的BUG们

这篇文章主要是记录一些IE6下出现的问题,有可能是不兼容web标准问题,有可能是IE6本身的bug。

3px问题

基本例子

查看例1,

ie6 3px问题图图1 正常浏览效果

ie6 3px问题图图2 IE6下浏览效果

IE6下div#two有“two”字符左侧有3px的空隙。

触发条件

一个浮动的列后有一个非浮动的列,在IE6下他们之间会有3px的间隙。比如例子中的#one是个浮动的列,#two是个非浮动的列,#one和#two之间有个3px的间隙。

解决办法

给左列加上_margin-right:-3px,该属性只有IE6能够识别。

变化

当非浮动的列(例子中的#two)具有width属性的时候,间隙表现为div间有空隙。在例1中加入代码

#two{ width:200px; }

下面是IE6下截图:

ie6 3px问题图

参考