2013-05-28 76 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