悬停效果不适用于 IE8

Posted

技术标签:

【中文标题】悬停效果不适用于 IE8【英文标题】:Hover effects not working with IE8 【发布时间】:2011-09-10 07:42:26 【问题描述】:

我使用 CSS 来改变表格悬停时的颜色

#tabb tbody tr:hover td
    color:#006;
    background:#d0e4f2;

这在 Chrome 和 Firefox 中运行良好,但在 Internet Explorer 8 中不会出现悬停效果。

有没有办法让这个效果也适用于 IE8?

【问题讨论】:

在 IE8 中工作得非常好。验证您的 html 代码。 @AR:在@thirtydot 的帮助下找到了问题 - 缺少 DOCTYPE。 【参考方案1】:

应该在 IE8 中可以正常工作。

暗中刺伤:

确保您将a doctype 作为触发标准模式的 HTML 的第一行,例如:

<!DOCTYPE html>

在Quirks Mode 中,IE 模拟 5.5 版,该版本不支持在 a 以外的元素上使用 :hover

【讨论】:

我没有那行。现在它起作用了!谢谢,我会阅读有关 doctype 的信息,不知道。 我在我的 jsp 中有我的 doctype,但后来把东西拿出来解决其他问题。你成功了!感谢您的帮助!【参考方案2】:

IE8 不是:hover 问题的常见罪魁祸首。如果你不能让它工作,总有 jQuery!

$("#tabb tbody tr").hover(
    function() 
        $("this").children("td").css(  'background-color': '#d0e4f2', 'color': '#006'  );
    ,
    function() 
        $("this").children("td").css(  ...  );
    
);

【讨论】:

不是一个糟糕的选择,但不应该是必要的,而且在非常大的表上,会有一些性能问题。 如果您决定采用 jQuery 路线,您还可以在 CSS 中创建一个 .highlight 类,然后使用 jQuery 的 toggleClass() 函数,而不是将 CSS 属性硬编码到您的语句中。如果您愿意将额外的代码添加到 CSS IMO,这是一个更好的解决方案。 @Patricia - 关于性能的好点。太多人在不必要的情况下依赖 javascript 而没有考虑后果。【参考方案3】:

我的猜测是您的表格的 html 代码中存在一些问题。正如你在这个又快又脏的小提琴上看到的,你的 CSS 没问题:

http://jsfiddle.net/PwZsN/

【讨论】:

以上是关于悬停效果不适用于 IE8的主要内容,如果未能解决你的问题,请参考以下文章

悬停效果不适用于 z-index 较低的元素

IE8 上的鼠标悬停/悬停效果缓慢

jQuery背景按钮动画适用于Chrome和IE8,但不适用于Firefox或IE9 [重复]

:hover 似乎不适用于自定义按钮

在圆圈上悬停状态

HTML 两个悬停效果不起作用