2011-03-24 43 views
0

我有这样的CSS:替代父CSS属性

a:hover { 
    background-color:#D1E1EA; 
    color:#19558D; 
    text-decoration:none; 
} 

在我的应用程序的所有链接。但是,在一个特定的链接上,我想取消所有这些hover行为。我怎样才能做到这一点?

请注意,这不是重新定义这些属性的特定链接那样简单,因为特定链接的颜色发生变化,所以我不能只选择一个background-color ...

+0

我不明白你的问题的标题。 – BoltClock 2011-03-24 05:39:43

+0

@BoltClock - 我甚至都不明白问题的正文。我以为他不能设置一个特定的背景颜色... – 2011-03-24 06:00:39

+0

他说,有一个父CSS文件,修改锚标签的悬停选择器与体内的3行(如图所示),他希望这不会发生在继承的css文件中;具体而言,他希望显示的特定行为不会发生。 – OKGimmeMoney 2015-05-07 21:14:47

回答

1

我不能完全通过覆盖确定你的意思,但你可以尝试设置背景颜色为透明,所以你没有指定一个特定的颜色。

a:hover.moreSpecific{ 
    background-color: transparent; 
} 
1

我以前发布的评论说你不能这样做,但有一个:not()选择在CSS 3,可以做到这一点。 It just won't work in IE < 9。我想你不得不在JS中使用JS。

a:hover:not(#specific_link) { 
    background-color:#D1E1EA; 
    color:#19558D; 
    text-decoration:none; 
} 
1

大多数(?全部)CSS属性允许你inherit从父元素:

a:hover.special { 
    background: transparent; 
    color: inherit; 
    text-decoration: inherit; 
} 
+0

值得注意的是,在IE <8中,除了'direction'和'visibility'之外的任何东西都不能使用'inherit'。http://reference.sitepoint.com/css/inheritvalue – 2011-03-24 05:48:19

+0

公平点。无论如何,你的CSS3方法更清洁(并且可以使用selectivizr.js之类的东西在IE6-8中工作)。 – 2011-03-24 12:46:12