热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在IE6中,CSSsprite基于滚动的闪烁。-CSSspritebasedrolloverblinksinIE6

ImusingtheCSSbasedrollovertrickthatswitchesthebackgroundpositionoftheelementsback

I'm using the CSS based rollover "trick" that switches the background position of the element's background image on hover.

我使用基于CSS的翻转“技巧”来切换元素背景图像的背景位置。

The CSS

CSS

#welcome #step1 
{background: transparent url(../img/mock/homepage_welcome_step1.png) no-repeat scroll left top;}
#welcome #step1:hover 
{background: transparent url(../img/mock/homepage_welcome_step1.png) no-repeat scroll right top;}

The HTML

HTML

...

Naturally IE6 messes this simple thing up. All my rollovers blink.

当然,IE6把这个简单的东西搞砸了。我所有的滚动闪烁。

Upon mouse over the image vanishes for a moment then moves to the over state. An interesting quirk, if I navigate away from the page then press the BACK button the problem seems to go away!

鼠标在图像上消失片刻,然后移动到超状态。一个有趣的怪癖是,如果我离开页面,然后按下后退按钮,问题似乎就消失了!

I'm thinking it has to do with the PNG image files (though they don't have any transparency) Or perhaps something simple as doc type (XHTML transitional)

我认为它与PNG图像文件有关(尽管它们没有任何透明性),或者可能是简单的doc类型(XHTML过渡)

Thanks for your insight.

谢谢你的见解。

EDIT (SOLVED):

编辑(解决):

Jitendra provided the link to solve the problem. I simply added this to the head:

Jitendra提供了解决该问题的链接。我只是把这个加到头部:


6 个解决方案

#1


3  

See these solutions-

看到这些解决方案,

http://ajaxian.com/archives/no-more-ie6-background-flicker

http://ajaxian.com/archives/no-more-ie6-background-flicker

http://www.hedgerwow.com/360/bugs/dom-fix-ie6-background-image-flicker.html

http://www.hedgerwow.com/360/bugs/dom-fix-ie6-background-image-flicker.html

#2


3  

The browser is requesting the image from the server for each CSS rule where you specify the url() property. To fix this, simply combine the background portion of your two rules into one rule and set the background-position property for each state of the css sprite.

浏览器正在为您指定url()属性的每个CSS规则从服务器请求映像。要解决这个问题,只需将两个规则的背景部分合并到一个规则中,并为css精灵的每个状态设置背景位置属性。

#step1, #step1:hover {
    background: transparent url(../img/mock/homepage_welcome_step1.png) no-repeat scroll;
}
#step1 {
    background-position: left top;
}
#step1:hover {
    background-position: right top;
}

This problem actually happens in many browsers. It's just more noticeable in IE6.

这个问题实际上在许多浏览器中都存在。这在IE6中更加明显。

As a side note, if you're using IDs, specifying two ids in your selector is unnecessary. IDs should be unique to the page.

作为补充说明,如果您正在使用IDs,则无需在选择器中指定两个id。id对页面应该是唯一的。

#3


1  

I don't have IE6 around anymore to test with, but have you checked to make sure that the image is fully cacheable by the client? It should have an explicit Expires or Cache-Control: max-age HTTP header.

我已经没有IE6可以测试了,但是你检查过图片是否可以被客户缓存吗?它应该有一个显式的过期或Cache-Control: max-age HTTP头。

#4


1  

This article has a discussion of the triggers of this problem and some other solutions: http://web.archive.org/web/20100105213004/http://www.fivesevensix.com/studies/ie6flicker/

本文讨论了这个问题的触发因素以及其他一些解决方案:http://web.archive.org/web/20100105213004/http://www.fivesevensix.com/studies/ie6flicker/

Also, the CSS to fix this as provided by Gabriel can be improved to:

另外,Gabriel提供的CSS修复可以改进为:

#step1 {
    background: transparent url(../img/mock/homepage_welcome_step1.png) no-repeat scroll left top;
}
#step1:hover {
    background-position: right top;
}

#5


0  

for fun, what happens if your :hover style specifies only

有趣的是,如果您的:hover样式只指定

 {background-position: right top;}

#6


0  

Sounds like a typical case of 'IE6 Flicker' which is caused by a setting in IE6. The browser re-requests the image from the server on hover... Stupid right? Have you tried 'Double Buffering' the image? By this I mean place the same background image on both the parent element and the link itself. Example below:

这听起来像是IE6中设置的“IE6闪烁”的典型例子。浏览器在悬浮状态下重新请求服务器的图像……愚蠢的对吧?你尝试过“双缓冲”图像吗?我的意思是在父元素和链接本身上放置相同的背景图像。在下面的例子:

#welcome {
background: transparent url(../img/mock/homepage_welcome_step1.png) no-repeat scroll left top;
}
#welcome #step1 {
background: transparent url(../img/mock/homepage_welcome_step1.png) no-repeat scroll left top;
}
#welcome #step1:hover {
background: transparent url(../img/mock/homepage_welcome_step1.png) no-repeat scroll right top;
}

Let me know how you get on :)

告诉我你的进展情况:


推荐阅读
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • Java设计模式详解:解释器模式的应用与实现
    本文详细介绍了Java设计模式中的解释器模式,包括其定义、应用场景、优缺点以及具体的实现示例。通过音乐解释器的例子,帮助读者更好地理解和应用这一模式。 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 在iOS开发中,`UIScrollView` 的滚动条显示与隐藏由两个关键属性控制,默认情况下,滚动条会在滚动时短暂显示,然后自动消失。通过设置 `showsHorizontalScrollIndicator` 和 `showsVerticalScrollIndicator` 属性为 `YES` 或 `NO`,可以强制始终显示或隐藏水平和垂直滚动条。此外,还可以通过 `indicatorStyle` 属性调整滚动条的样式,以适应不同的界面需求。这些属性的灵活运用能够显著提升用户体验。 ... [详细]
  • 如何使用 `org.apache.tomcat.websocket.server.WsServerContainer.findMapping()` 方法及其代码示例解析 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 当使用 `new` 表达式(即通过 `new` 动态创建对象)时,会发生两件事:首先,内存被分配用于存储新对象;其次,该对象的构造函数被调用以初始化对象。为了确保资源管理的一致性和避免内存泄漏,建议在使用 `new` 和 `delete` 时保持形式一致。例如,如果使用 `new[]` 分配数组,则应使用 `delete[]` 来释放内存;同样,如果使用 `new` 分配单个对象,则应使用 `delete` 来释放内存。这种一致性有助于防止常见的编程错误,提高代码的健壮性和可维护性。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • SQLite数据库CRUD操作实例分析与应用
    本文通过分析和实例演示了SQLite数据库中的CRUD(创建、读取、更新和删除)操作,详细介绍了如何在Java环境中使用Person实体类进行数据库操作。文章首先阐述了SQLite数据库的基本概念及其在移动应用开发中的重要性,然后通过具体的代码示例,逐步展示了如何实现对Person实体类的增删改查功能。此外,还讨论了常见错误及其解决方法,为开发者提供了实用的参考和指导。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 英语面试技巧:提升个人技能与表现
    在英语面试中,个人技能是指除专业知识外,能够促进职业发展的各种能力。虽然你可能具备多种技能,但建议重点突出与目标岗位最相关的几项,以增强面试官对你专业能力和适应性的认可。 ... [详细]
author-avatar
林友骏091
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有