IE6 bug小结
要说网页呈现的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;} |
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; 。。