覆盖父CSS属性

时间:2011-03-24 05:25:15

标签: css inheritance

我有这个CSS:

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

我的应用中的所有链接。但是,在一个特定的链接上,我想要使所有这些hover行为无效。我怎么能这样做?

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

3 个答案:

答案 0 :(得分:1)

我不完全确定覆盖的含义,但您可以尝试将背景颜色设置为透明,因此您没有指定特定的颜色。

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

答案 1 :(得分:1)

我之前发布了一条评论说你无法做到这一点,但CSS 3中有一个:not()选择器可以做到这一点。 It just won't work in IE < 9。我认为你必须使用JS在IE中完成它。

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

答案 2 :(得分:1)

大多数(所有?)CSS属性允许您从父元素inherit开始:

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