仅当链接没有“文件夹”类时,如何进行悬停?

时间:2012-12-10 15:58:51

标签: css

我有以下内容:

<a class="folder"><span>Background</span></a>

和以下CSS:

        ul.arbo li > a:hover span,
        ul.arbo li > a.current span {
            background: #999999;
        }

如何修改CSS,以便在链接具有一类文件夹时不适用。换句话说,它不适用于上面的HTML

4 个答案:

答案 0 :(得分:4)

你可以在css中使用否定伪类选择器:not,如下所示:

:not(.folder) {

}

请参阅工作demo(由insertusernamehere提供)。

答案 1 :(得分:2)

CSS3有:not()选择器,您可以将其添加到CSS中(或者您可以使用jQuery执行此操作)。请注意,这只适用于较新的浏览器。

http://www.w3schools.com/cssref/sel_not.asp

:not(.folder) 

在你的实例中:

ul.arbo li > a:not(.folder):hover span,
ul.arbo li > a:not(.folder).current span { }

答案 2 :(得分:0)

你不需要JavaScript或jQuery,你也可以不用CSS3(这可能是相关的,取决于你计划支持的浏览器)。

只需添加另一条规则即可防止背景在某些元素上发生变化,例如:

ul.arbo li > a.folder:hover span
{
    background: inherit;   
}

Working example.

答案 3 :(得分:0)

:not(.folder) {

}

是一个很好的解决方案。不要忘记检查你想要的浏览器太多了!

:not selector不是CSS3选择器,并非所有浏览器都支持它...例如IE8及更早版本不支持:not selector。