CSS Selection / Transition属性值似乎是错误的

时间:2013-01-12 15:17:08

标签: html css css3 css-selectors css-transitions

之前我使用了#footer a选择器,但在删除#footer之后,将更改应用于页面上的所有<a>,除了类为{的div中的更改{1}},没有链接可以分配以下选择器:.navbara:not(.navbar a)a:not(.navbar a):hover(也可以在Google Chrome元素检查器中看到)

我创建了2个jsFiddles来表示我想说的内容:

  1. Working example of first version
  2. Broken, new code
  3. 我必须再次修复它,所以它适用于整个页面,除了一个div。

1 个答案:

答案 0 :(得分:2)

您无法在CSS中执行a:not(.navbar a)

如果您知道a将始终直接嵌套在.navbar中,并且您想要排除a,则可以选择:not(.navbar) > a。但是如果嵌套级别是任意的并且您希望将a嵌套在.navbar内的任何位置,那么您可能无法为此编写CSS选择器。像:not(.navbar) a这样的东西总能匹配树中较高的其他元素。有关其无效的原因的另一个示例,请参阅this answer

最简单的解决方案是将效果应用于所有a元素,然后在.navbar 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