【问题标题】:Add/Removing a CSS text color based on the hovering over another element/class根据悬停在另一个元素/类上添加/删除 CSS 文本颜色
【发布时间】:2012-01-17 15:45:45
【问题描述】:

我正在使用Superfish 并试图让样式有所不同。基本上,当我将鼠标悬停在带有 ul 的菜单上时,下拉菜单很好,等等。当悬停在该下拉菜单中的元素上时,文本颜色很好,因为我将该元素设置为:hover。

当我没有将鼠标悬停在该元素上时,它使用顶层的颜色。

我希望它保持白色 - 请忽略背景颜色的差异,我正在尝试一些东西。

我的 CSS http://pastebin.com/Hy1Rdwxb

我是否必须使用 jQuery .addClass 才能让它保持白色?

【问题讨论】:

    标签: jquery html css


    【解决方案1】:

    假设这就是它的颜色:

    .sf-menu li:hover, .sf-menu li.sfHover,
    .sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
            background:             #ae9b9d;
            outline:                0;
            color: #eee !important; 
    }
    

    您需要将.sf-menu li:hover 更改/添加到.sf-menu li:hover > a 以获得效果。问题是它不会在悬停时着色,因为a 标签本身有更具体的样式。以上允许使用 CSS 设置 li 正下方的 a 标签。

    请注意,> 运算符不是直接在下面设置所有元素的样式,只是您想要的那个,而是won't work in IE 6(因为您的某些样式似乎表明您会支持它,which you shouldn't 除非你的观众强迫你的手),这意味着你仍然会在 IE 6 中看到这种变色。

    【讨论】:

    • 我不介意忽略 IE6,并接受它 - 但 CSS 实际上主要是超级鱼。
    • 您可以添加自己的样式。只需将 .sf-menu li:hover > a { color: #eee !important; } 放入您自己的 CSS 代码中,您就可以看到结果是否粘贴。
    • 这确实有效,当悬停在下拉列表之外时,它再次使用顶级颜色。有什么技巧/想法吗?
    • .menuClass 上可能的 jQuery mouseout -- addClass 'whiteText' 或其他东西。
    • 嗯...我不使用 Superfish,但我猜这与他们的 .sfHover 课程有关。我不知道什么时候应用。您也可以尝试将.sf-menu li.sfHover > a 添加到上述内容中,但是看到一个现场示例,我不确定我能提供更多帮助。如果它不起作用,也许尝试将示例发布到 jsfiddle.net
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2013-01-26
    相关资源
    最近更新 更多