标签为: "IE6" 的文章

解决IE6背景图片不缓存的BUG

IE6在背景图片缓存上有一个bug:它会每次都从服务器端读取背景图片。例如我们使用a:hover更换背景图片,在IE6下会出现每次鼠标滑过则重新向服务器请求图片,如果服务器反应较慢,那么hover效果就会出现短暂的空白,令人极度不爽。虽然可以通过CSS sprites的方式解决问题的,但效果差强人意。

示例:
a{ background:url(normal.gif); } a:hover { background:url(hover.gif); }
如果为超级链接定义上述的css样式以实现鼠标悬浮时的动态效果,在firefox下是没有什么问题的,第一次加载之后,浏览器都会从缓存读取背景图片.

解决方法

具体的解决方法就是在页面中加入一段简单的javascript脚本,告诉IE6:本地有背景图片的话就不要麻烦服务器了。 document.execCommand("BackgroundImageCache",false,true);

关于这段脚本的放置方式有两种:

阅读更多…

2010年6月21日

解决IE6 select z-index无效,遮挡div的bug

在最近的一个项目中,遇到了IE6 select遮挡div的bug,为了解决这个bug我查了很多资料,试图找到一个最最有效的方法,很多人是通过iframe的方法来解决,其实我查了国外的很多资料也是通过iframe的方法来解决的。今天我说说iframe解决的一般方法,已经使用jQuery插件bgiframe解决IE6 select z-index无效,遮挡div的bug。

解决方法之一:Iframe包裹select元素

使用iframe包住select,这样iframe有z-index,只要在div上设置的z-index比iframe的高即可~这种方法有一定的局限性,不可能每个select都要加个iframe吧?所以不推荐!代码如下:

<iframe style="z-index:1" style="z-index:1"><!-- 用iframe 解决此bug -->     
            <select name="country">                    
                 <option value="1">china</option>     
                <option value="2">japanese</option>     
                <option value="1">U.S.A</option>     
             </select>     
</iframe>

解决方法之二:以Iframe作为div的子元素,覆盖select元素

建立一个跟div同宽同高的iframe,并且z-index比div要低。这种方法推荐使用:
阅读更多…

2010年6月17日

最新版wBox 解决IE6 背景太小bug

今天看了一下cssrain的评论,都提出来了再IE6下wBox背景显示不全,不能完全覆盖页面的问题,在wBox开发中,IE6下的背景最初我是通过CSS hack来解决的,代码如下:

* html #wBox_overlay { /* ie6 hack */
  position: absolute;
  height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
}

但是这就造成了一个bug:当IE6下,页面高度不够的时候,就会出现背景不能完全覆盖整个页面的bug。
下午的时候,我及时的修改了这个bug,通过计算页面高宽以及window的高宽,取其最大值作为背景层的高宽,这样就解决了wBox在IE6 下背景显示不全的bug啦~
最新的wBox下载地址:http://code.google.com/p/follow5api/downloads/list

2010年3月11日

png在IE6下透明的几种方法

断桥残雪在《IE6 PNG图片不透明问题的解决方法》中提到了使用js来解决IE6下PNG图片不透明的问题,今天我总结一下png在IE6下透明的方法:css方法js方法htc方法

png透明针对IE6一直是件挺麻烦的事情,使用的方法也是各有不同,大多的原理是用IE的滤镜来解决的。

语法:
filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )

enabled : 可选项。布尔值(Boolean)。设置或检索滤镜是否激活。true | false true : 默认值。滤镜激活。
false : 滤镜被禁止。
sizingMethod : 可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。 crop : 剪切图片以适应对象尺寸。
image : 默认值。增大或减小对象的尺寸边界以适应图片的尺寸。scale : 缩放图片以适应对象的尺寸边界。
src : 必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。

现在一般在使用的方法有以下几种:
阅读更多…

2010年1月14日

IE6 PNG图片不透明问题的解决方法

IE6真是前端开发人员的噩梦,就像刘洋说的:IE6一次又一次的阻碍了互联网的发展。在前几天开发的WordPress天气预报插件中使用的图片都是png格式的透明图片,由于png格式的图片比较漂亮美观,可是在IE6中png的透明效果是没有的,这样子本来设计很漂亮的页面在IE6就歇菜了,让人感觉很不爽~本文使用js的方法来解决IE6下PNG图片不透明的问题,简单实用。更多解决方法点击此处

如果我们在页面中使用的透明PNG图片不是很多,可以使用下面的代码来解决问题:

function setPng(img, w, h){
                ua = window.navigator.userAgent.toLowerCase();
                if (!/msie/.test(ua))
                    return;
                imgStyle = "display:inline-block;" + img.style.cssText;
                strNewHTML = "";
                img.outerHTML = strNewHTML;
}

使用方法,在img上添加onload=”setPng(this,宽度,高度)”,如<img onload=”setPng(this,98,78)” src=”" />

如果您觉得这样的方法比较麻烦,或者页面中使用的透明png图片比较多如果手动添加很不方便的时候,可是使用下面的代码来解决问题。
阅读更多…

2009年12月18日