Tag Archive for 'iebug'

cssText在IE中的小bug

Element.style.cssText

当需要批量赋予Element样式时,cssText是比较好的方式,可以减少reflow,如:

但是,这样会有一个问题,会把原有的cssText清掉,比如原来的style中有’display:none;’,那么执行完上面的JS后,display就被删掉了。
为了解决这个问题,可以采用cssText累加的方法:

但是,cssText(假如不为空)在IE中最后一个分号会被删掉,比较BT….
因此,上面cssText累加的方法在IE中是无效的。

最后,可以在前面添加一个分号来解决这个问题:

IE的TR背景bug

最初的想法是想实现tr上加一个背景色,然后td上加一个透明背景图片,但是在IE中的td却无法透明,多出来一个背景颜色,而在其他浏览器中正常。

TR背景IE bug深入分析:

第一个td:通过把td的背景色设为透明,可以发现IE中td的颜色变成红色(此例中为table的颜色,如果table没有指定背景颜色则会向上寻找有背景颜色的祖级,一直到body和html)了,而不是tr的颜色,似乎td的背景直接作用到了tr上,把tr的颜色也给透明了,就像一个滤色镜。

第二个td:通过把无背景的td设置50%的透明度可以发现,在IE中tr的白色背景居然也被透明掉了,似乎tr的背景直接作用到了td上。

解决方法:

网上搜了一下,没找到什么解决bug的方法。。。。
看来,只能转移背景了,把tr的背景色转移到了td上,或者把td上的透明图片转移到tr上。。。。

button在IE里前后空格“ ”无效?

测试了一下,发现button后面的空格还是有效的,前面的空格无效。

加“ ”的话使用起来非常不方便,暂时还没有找到好的解决方法,先记录一下。

margin也不是很好的解决方案,因为空格在各浏览器的距离也是有细微的差别,你总不可能为这个再去搞一堆margin hack吧。

IE6bug-默认不缓存背景图片?

在IE6中,当JS触发事件时背景图片会闪一下,是重新加载导致的。

是因为IE6默认不缓存背景图片?

事实上,不应该认为是不缓存背景图片的bug,实际上图片仍然在缓存里,不会再去下载一遍(这个我测试过,用一张很大的图片,背景闪烁是在瞬间完成,远远小于图片重新下载的时间)。

可能是IE6重新调用一下缓存里的图片引起的。

以下是一个比较好的解决方案:
(小提示——该办法在部分绿色版的IE6无效,但这些失效的绿色IE6中通过浏览器的前进后退按钮浏览时会有效,当然该办法对大多数的IE6是没问题的)