关于ie6出现的问题的原因归结

关于ie6出现的问题主要可以归结为以下几种情况把。

当然还存在各种原因,bug的情况也还有各种各样,我只是小结一下我自己经常遇到,比较有代表性的问题。会持续的更新。
1。浏览器本身存在的缺陷
比如:

1》左浮动的元素,加了左补白(margin-left),就会出现双倍边距的问题。(我们可以尽量去避免这些问题,在不影响结构和其他样式的情况下,可以用左边距(padding-left),虽然两者在语意上是有区别的。)

2》绝对定位元素的1像素间距bug,当绝对定位元素的父元素高或宽为奇数时,bottom和right会产生错误,唯一的解决办法就是给父元素定义明确的高宽值,但对于液态布局没有完美的解决方法。(我的解决方法是针对ie6写了一个:_bottom:-1px;)

2。与标准的不同(触发布局的方式和其他浏览器不同)
比如:

浮动的清除(关闭)

1.Overflow :
hidden;

2.设置高宽

3.clear:both;

4.Zoom:1;

5.还有专门的浮动清除的类:

.clearfix:after
{content:"\200B"; display:block; height:0; clear:both; }

.clearfix
{ *zoom:1; }.

这是因为在ie中触发布局的方式和其他浏览器不同。所以有时候在代码中加zoom:1;是非常有用的。

3。不支持一些元素或者方法(这些元素或者方法出现在ie6出现之后)

比如:

1.透明读属性opacity。在ie6,7,8中都是无效的,我们可以用filter来代替:opacity: 0.5; filter:alpha(opacity=50);但是考虑到性能问题,也可以直接不考虑低级版本浏览器。

2.如果是png图片透明问题的话可以加一个滤镜的插件(可以到网上搜一下具体用法):

<!--[if IE 6]>

<script type="text/javascript"
src="/js/DD_belatedPNG-min.js"></script>

<script>

DD_belatedPNG.fix("#foot_logo,img,background");

</script>

<![endif]-->

3. css3中的一些样式效果,比如圆角,阴影之类的都是用渐进增强,平稳退化的原则。

4. JSON.stringify方法ie6.7是不支持的。如果要考虑ie6.7需要用其他方法。

上一篇:container宽度


下一篇:Java数据类型和变量