2013-01-12 63 views
0

我之前使用的#footer a選擇,但除去#footer後作出改變適用於所有<a>的網頁上,除了那些在一個div一類的.navbar,無鏈接指定了以下選擇:a:not(.navbar a)a:not(.navbar a):hovera:not(.navbar a):active(也可見於谷歌瀏覽器元素檢查員)CSS選擇/轉換屬性值似乎是錯的

我創建2個jsFiddles代表什麼,我想說:

  1. Working example of first version
  2. Broken, new code

我不得不再次修復它,所以它適用於整個頁面,只是一個DIV。

回答

2

你不能在CSS中做a:not(.navbar a)

如果您知道您的a將始終直接嵌套在.navbar之內,並且您想要排除該a,您可以選擇:not(.navbar) > a。但是,如果嵌套級別是任意的,並且您想排除嵌套在.navbar內的任何位置的a,那麼您可能會遇到編寫CSS選擇器的問題。像:not(.navbar) a之類的東西總是可以匹配樹中更高一些的其他元素。查看this answer爲什麼它不起作用的另一個例子。

這個的最簡單的解決方案是在.navbar a效果適用於所有a元素,則撤銷它們:

.navbar a { 
    text-shadow:none; 
    padding:0; 
    -webkit-transition-property: none; 
    -moz-transition-property: none; 
    -o-transition-property: none; 
    transition-property: none; 
} 

jsFiddle preview

+0

Acoording [本](http://jsfiddle.net/ DJDavid98/VJ43W/3 /)小提琴,選擇器現在工作,但它不排除導航欄。而''可以放在'.navbar'裏面的任何元素中(看小提琴) – SeinopSys

+0

@ DJDavid98:你不能':not(.navbar a)'。我不清楚,編輯。 – BoltClock

+0

我不能,好吧,但我該如何實現呢? – SeinopSys