2012-10-11 35 views
1

是否可以在一個:not標籤中使用僞類?裏面的僞類:不是

實施例:

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

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

我試圖抵消父懸停的效果,當我懸停的內項,而無需使用JavaScript。

以上代碼的預期結果是當你懸停李,但不是內部股利,李得到了懸停效果。但是,只有當你沒有徘徊。

更新

http://jsfiddle.net/eTV86/ 我要的是,當.inner變黑,李變回紅色。

+2

你有一些我們可以試驗的代表性HTML嗎?你能解釋一下*究竟是你想做什麼? –

+0

我很困惑...你能展示你想要做什麼嗎? –

+1

我想你應該用CSS來代替使用':not'來模仿相同的效果......只是重新聲明它 –

回答

2

是的,但你使用無論是課堂還是假課堂,類,它是無效的:

li:not(.inner:hover):hover 

即使你將它更改爲這是有效的(按照this answer):

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

中的第一選擇將始終懸停符合您li,第二選擇永遠不會匹配任何東西。它永遠不會匹配您的div.inner,因爲您將:not()附加到li

最後,如果要在.inner獲得懸停時更改li,那麼使用當前CSS選擇器是不可能的。你需要JavaScript。

+0

所以我不能告訴孩子的懸停在一個內部是否有效:不是? – Kao

+0

你不能,因爲':not()'只查看你附加的任何元素,而不是子級。而且由於還沒有父母選擇器,所以你不能用CSS來完成。 – BoltClock

+0

那麼是否有一個純粹的CSS解決方案來實現我想要的? – Kao

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> 

CSS

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{} */} 

DEMO http://jsfiddle.net/mKQas/2/

+0

我不明白,如果將鼠標懸停在上,這是如何取消懸停的li的? – Kao