要说网页呈现的bug,当属 IE6 最多了,毕竟是最古老的浏览器,很多属性的应用在其他版本的浏览器正常,但在 IE6 中却出现各种各样难以解释的问题。大多数情况下,我们只能使用IE6的专属hack来处理。这篇文章列出了一些常见的bug:

1.问题:ie6, ie7绝对定位元素不显示?

解决方案:在绝对定位元素外层加一空白div,不应用任何样式,方可让定位元素显示。

2.问题:ie6 在绝对定位元素上,z-index不起作用?

解决方案:给绝对定位元素的整个DOM跟节点加z-index。

3.问题:ie6 下浮动的li 在中间的排产生错位?

解决方案:给li加一个min-height,当然这里不支持。下回会说道。

4.问题:ie6如何支持max-height ,min-height ?

解决方案 : 使用最大高度和最小高度

.box{max-height:1000px;_height:expression((document.documentElement.clientHeight||document.body.clientHeight)<1000?"1000px":"");overflow:hidden;}

.box{min-height:1000px;_height:expression((document.documentElement.clientHeight||document.body.clientHeight)>1000?"1000px":"");overflow:hidden;}

5.问题:ie6 如何支持 fixed ?

解决方案:详见:fixed在网页的一些应用

6.问题:ie6 下的双倍margin ?

解决方案:给有双倍margin的标签加 {display: inline;}

7.问题:ie6的著名3像素bug 是什么?

解决方案:当有两个div在一个容器中,一个左浮动,一个不浮动时,他们中间有三像素空白。此时,只要让右浮动的元素向左浮动,或者左浮动元素margin-right:-3px;

8.问题: 各浏览器的hack的写法?

解决方案:

_ : 除IE6支持_ 外, FF+IE8+IE7都不支持_;

*: IE6+IE7都能识别,而标准浏览器FF+IE8是不能识别的;

\9: 所有IE浏览器都识别(IE6、IE7、IE8、IE9)

!important: 除IE6不能识别 !important外, FF+IE8+IE7都能识别!important ;

9.问题:各浏览器的hack的书写顺序?

解决方案:先写FF,chorme等非IE内核的浏览器,然后再写IE9,IE8,接着写IE7的,最后才写IE6!

10.问题:模拟的弹出滤镜DIV无法在ie6的浏览器百分百撑开?

解决方案:加上样式:body,html{height:100%;width:100%;}

11.问题:ie6, ie7 a元素不显示?

解决方案:a标签可能设置了 display:inline-block ,然 ie6,ie7 不支持 inline-block 这个属性

12.问题:ie6最后一行或者最后几个文字重叠,或者重复最后一行?

解决方案:给所在的问题标签加position:relative ;或者是由于在各个浮动元素之间加了中文注视引起的。

13.问题:ie6下a 标签鼠标经过时,背景变化失效?

解决方案:给所在的a标签加一个href的链接属性即可!(比如href=””,href=”#”,href=”javascript”等)

14.问题:ie6下input=button 标签设置png背景时,有时会出现不显示的情况?

解决方案:给所在的input=button标签加一个display:block属性即可!

15.问题:ie6下图片底部有多余的空白(大概5个像素)?

解决方案:给img 设置 display:block,或者给img设置vertical-align:bottom

16.问题:相同标签相同文字,在ie6显示的高度和另外的浏览器显示不同?

解决方案:可能该标签未设置行高。

17.问题:当标签设置了text-indent:-9999em,并且它的属性含有display:inline-block时,该标签在ie6会不显示?

解决方案:原因:text-indent:-9999px会影响 display:inline-block的展现形式。这个还需要深入理解…..

方法一:直接给该标签设置display:block;方法二:标签里面的text-indent:-9999px;改为font-size:0; line-height:0; 。。