【发布时间】:2011-02-03 23:48:00
【问题描述】:
CSS :hover 在 IE6 中不适用于非链接元素。有解决方法吗?例如如何将:hover 应用于div?
【问题讨论】:
标签: javascript html css internet-explorer internet-explorer-6
CSS :hover 在 IE6 中不适用于非链接元素。有解决方法吗?例如如何将:hover 应用于div?
【问题讨论】:
标签: javascript html css internet-explorer internet-explorer-6
有whatever:hover。我自己从未使用过它,但据我所知,它运作良好。
Whatever:hover 是一个小脚本,它可以自动修补 :hover、:active 和 :focus 用于 IE6、IE7 和 IE8 的怪癖,让您可以像在任何其他浏览器中一样使用它们。版本 3 引入了 ajax 支持,这意味着通过 javascript 插入到文档中的任何 html 也将在 IE 中触发 :hover、:active 和 :focus 样式。
【讨论】:
您可以使用来自 Dean Edwards 的著名 IE7.js,它有一个很好的优势,您可以在 CSS 中使用 :hover 选择器。
除此之外,我怀疑您是否可以仅使用 CSS 来实现它。 IE 可以通过 expression() 处理 CSS 文件中的 JS,但是如果你发现我的想法,你就无法在没有选择器处理悬停的情况下使用表达式来处理悬停。
然后,最后,一个简短的 jQuery 解决方案:
$(document).ready(function () {
$('div').hover(function () {
$(this).addClass('hover');
}, function () {
$(this).removeClass('hover');
});
});
然后你可以在你的样式表中使用它:
div:hover, div.hover { ... }
【讨论】:
:hover 就太过分了,但是如果您想要所有额外的东西并且还不知道它,那就太好了。
:hover 来说这太过分了。实际上,大多数情况下,当答案以“您可以使用 jQuery 或这个......”开头时,这正是我当时评论的内容。 ;-) 然而,就像你提到的,在处理 IE6 时,我经常发现自己在很多不同的情况下都在考虑 IE7.js。
Suckerfish vs. .htcIIIIN 我们拥有的蓝色角落 Suckerfish,原来的轻量级, 可访问,跨浏览器, 符合标准:悬停模仿。 IIIIN红色角落我们有'.htc' - 通过 CSS 访问的 JavaScript 文件 模仿:悬停。
叮叮!
Suckerfish 立即重重地降落 打击 .htc 的有效性 - .htc 简单 不是符合标准的 CSS。
Oooo... .htc 偷偷摸摸地戳戳 无需额外的 选择器...
Suckerfish 在圆环周围弹跳。 他的体重比他的轻很多 对手。
还有哦! IE 5.0 上勾拳!那是 .htc 没有的东西 做事的技巧,而 Suckerfish 可以无缝运行 IE 5.0。
.htc 晕了!比赛是 超过! Suckerfish 在积分上获胜!将军澳!
IE7.js
在 IE6 中没有可用的纯且有效的 CSS 解决方案。
一个无效的 CSS 表达式解决方案可用 但我不建议使用 这个because it's slow
解决方案:http://www.visibilityinherit.com/code/ie6-hover-expression.php
【讨论】:
suckerfish and it's offspring 也为此目的提供了出色的轻量级替代品。
【讨论】: