2013-05-28 77 views
4

我想選擇除了那些內部和mailto鏈接和錨鏈接(#) 所有的鏈接所以我想結合選擇器,所以他們將排除X,Y和Z.但是我不能如何加入他們的行列。結合CSS3不選擇器

a:not([href*="myurl"]) { } 

這個CSS查找不包含「myurl」的鏈接但它然後查找的mailto:和錨(#)的鏈接,以及和我想從選擇中排除這一點。

我必須使用不選擇找到我的網站以外的所有網址,因爲沒有辦法就我所知,說「外面我自己所有的網站」,而不使用不。 有沒有一種方法,我可以把它像

a:not([href*="myurl OR # OR mailto"]) { } 

完整的代碼使用:hover和:以及如果該事項後:

a:not([href*="myurl"]):hover:after { } 

這需要在CSS中沒有的jQuery /完全熟透JavaScript的。我不能添加類的URL。

是它在所有可能的? (跨瀏覽器不是那麼重要,Chrome + Firefox就足夠了)

我目前的工作是使用not([href*="http:// "]) { }來定位其他鏈接,但這不是優選的,因爲它意味着再次覆蓋更改,這並不總是工作,因爲一個可能是color: red和其他color: blue,我不能讓他們再回到原來的顏色(除其他原因外)

回答

13

您可以排除他們簡單地通過增加更多的:not()選擇:

a:not([href*="myurl"]):not([href*="#"]):not([href*="mailto"]) { } 

:hover:after狀態下,只需添加它像這樣:

a:not([href*="myurl"]):not([href*="#"]):not([href*="mailto"]):hover:after { } 

此外,由於這是CSS3,我建議你表示:after::after使用雙冒號代替,只是要清楚,你鏈接一個pseudo-element經過一系列的僞類的,但它不是絕對必需的,無論你使用不會使瀏覽器方面的差異:

a:not([href*="myurl"]):not([href*="#"]):not([href*="mailto"]):hover::after { } 
+0

+1 mentionin雙冒號語法 – DMKE

+0

謝謝你爲我工作。 – DiederikEEn