1

是否可以在 :not 标签中使用伪类?

例子:

li:not(.inner:hover):hover { // Code }

<li>
   <div class="inner"></div>
</li>

当我悬停内部项目时,我试图取消父悬停的效果,而不使用 javascript。

上述代码的预期结果是当您悬停 li 而不是内部 div 时,li 获得悬停效果。但前提是你不悬停.inner。

更新

http://jsfiddle.net/eTV86/ 我想要的是,当 .inner 变黑时, li 变回红色。

4

2 回答 2

2

是的,但是您同时使用了一个类和一个伪类,这是无效的:

li:not(.inner:hover):hover

即使您将其更改为有效的内容(根据此答案):

li:not(.inner):hover, li:not(:hover):hover

第一个选择器将始终与您li的悬停匹配,而第二个选择器将永远不会匹配任何内容。它永远不会匹配您的div.inner,因为您:not()li.

最后,如果您想更改悬停的li时间,当前的 CSS 选择器无法做到这一点。.inner您将需要 JavaScript。

于 2012-10-11T07:53:47.803 回答
0

您可以使用简单的 css 代替伪类

HTML

<ul>
<li class="active"><a href = "#">Link 1</a></li>
    <li><a href = "#">Link 2</a></li>
    <li><a href = "#">Link 3</a></li>
</ul>

​​​​​​​​​​​​​​​​​​​​​​​​​​

ul li a{ color:black}
ul li a:hover { color:red }
ul li.active a:hover { color:black /*re use the same properties which is there in default style viz ul li a{} */}

演示http://jsfiddle.net/mKQas/2/

于 2012-10-11T07:41:05.613 回答