`
charrysong
  • 浏览: 50471 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

如何解决IE6下背景图片闪烁问题

阅读更多

如果为超级链接定义上述的css样式以实现鼠标悬浮时的动态效果,在firefox下是没有什么问题的,第一次加载之后,浏览器都会从缓存读取背景图片;而IE6在这里有一个bug,它每次都从服务器端读取背景图片,结果就是,若服务器反应较慢hover效果就会出现短暂的空白,令人极度不爽。

   1. a {}{
   2.   background:url(images/normal.gif);
   3. }
   4. a:hover {}{
   5.   background:url(images/hover.gif);
   6. }

一直以来都是通过“两张背景图片合并、background-postion控制位置”的方式解决问题的,效果差强人意。今天无意中从一个老外的网站上发现了一个比较妥善的解决方案,具体来说就是在页面中加入一段简单的javascript脚本,告诉ie6:本地有背景图片的话就不要麻烦服务器了。

   1. document.execCommand("BackgroundImageCache",false,true);

关于这段脚本的放置方式有两种:
1.纯css方式,在css中加入如下代码

   1. html {}{
   2.     filter: e­xpression(document.execCommand("BackgroundImageCache", false, true));
   3. }

2.随便在页面中哪个位置(head、body或者onload)调用上面提及的脚本,例如:

   1. document.execCommand("BackgroundImageCache", false, true);

鉴于e­xpression严重影响浏览器效率,建议采用第二种方式。

最后,总结完整方案:普通、hover状态对应的图片合并成一张,css中通过background-postion控制其位置,页面中加入从缓存读取背景图片的javascript脚本。
转自:http://www.ok22.org/art_detail.aspx?id=169

分享到:
评论

相关推荐

    解决IE6兼容问题的十一大技巧

    本文将详细介绍如何解决IE6的兼容性问题,并提供一些实用的技巧。 1. **条件注释**:这是解决IE6兼容性问题的一个基础方法,通过在HTML文档中插入特定的条件注释,可以针对IE6及其不同版本应用不同的CSS或...

    超强的IE背景图片闪烁(抖动)的解决办法

    ### 超强的IE背景图片闪烁(抖动)的解决办法 #### 问题背景 在Web开发过程中,不少开发者可能会遇到一个让人头疼的问题:在Internet Explorer(简称IE)浏览器中,当页面背景图片需要重新加载时,会出现闪烁或者...

    div+css 解决ie6兼容问题总汇

    5. **背景闪烁**:IE6下,当链接或按钮使用CSS精灵作为背景时,可能遇到背景闪烁的问题。通过JavaScript的`document.execCommand("BackgroundImageCache",false,true);`可以缓存背景图,减少闪烁。 6. **最小高度**...

    ie6下的背景图片缓存

    IE6下CSS背景图片闪烁的Bug(ie6下的背景图片缓存问题) IE6下的背景图片每次使用都会重新发送请求(非本地),连一个hover效果时候同样的背景图片仅仅位置不同而已,ie6都会再次发送请求,这个令人崩溃的事情需要解决...

    IE6与CSS样式兼容问题汇总

    2、IE6下的圆角 IE6不支持CSS3的圆角属性,比较好的解决方法就是用图片圆角来替代,或者放弃IE6的圆角。 3、IE6背景闪烁 如果给链接、按钮用CSS sprites作为背景,可能会发现在IE6下会有背景图闪烁的现象。造成这个...

    链接伪类(:hover)CSS背景图片有闪动BUG的解决方法

    通过上述方法,可以有效解决IE6浏览器下链接伪类(:hover)CSS背景图片闪动BUG的问题,减少用户在浏览网页时的困扰,同时也减轻服务器的负载,提升网站的整体性能。这种兼容性问题的处理经验对于前端开发者来说非常...

    ie兼容问题

    通过以上几种方法,我们可以有效地解决IE6中常见的兼容性问题,从而确保网站能够在这一古老浏览器中也能正常展示。尽管IE6现在已经很少被使用,但在某些特定场景下,这些技巧仍然是非常有用的。

    IE6兼容性问题及IE6常见bug详细汇总

    **背景闪烁**:IE6下的背景图在`hover`时可能会闪烁,可以通过JavaScript命令`document.execCommand("BackgroundImageCache", false, true)`来缓存背景图,防止闪烁。 总之,解决IE6的兼容性问题需要开发者深入理解...

    ie6 position:fixed解决方案

    为了消除闪烁,可以通过在 `body` 元素上添加一个固定背景图片来解决,背景图片的 URL 为 `about:blank`,并且设置 `background-attachment: fixed;`。这样,即使元素没有实际的背景图,也会阻止闪烁现象。 示例...

    IE图片缓存document.execCommand("BackgroundImageCache",false,true)

    为了解决这个问题,Erik发现了一个简单的方法,利用`document.execCommand`这个命令,结合特定的参数,可以强制IE6缓存背景图片。具体代码如下: ```javascript document.execCommand("BackgroundImageCache", ...

    IE6中的position:fixed定位兼容性写法分享

    ` 结合使用,可以解决IE6中背景图片闪烁的问题,使背景固定在视口不随页面滚动。 接下来是针对不同方向固定的兼容性写法: 1. **头部固定**: ```css /* IE6 头部固定 */ html .fixed-top { position: absolute; ...

    CSS HACK收集:关于IE6/FF/google等浏览器hack的方法详细

    一种常见的解决方案是使用图片来模拟圆角,或者接受IE6下无圆角的显示效果。 5. **IE6背景闪烁**: 当使用CSS Sprites时,IE6可能出现背景图闪烁现象,因为它不会缓存背景图。可以通过JavaScript的`document....

    css:fixed定位兼容不同系列不同版本的浏览器包括IE6.0

    }` 这段代码是为了解决IE6的一个已知问题,当使用`background-attachment: fixed;`时,可能会引起闪烁。通过设置一个透明的背景图片并将其附件设为`fixed`,可以防止这个问题。 2. **IE6.0特有选择器`_position`**...

Global site tag (gtag.js) - Google Analytics