从其父级中排除此子级的格式

时间:2012-12-17 18:20:24

标签: css

我有一个像下面这样的CSS,当悬停在桌子上时会创建一定的背景颜色。

.cb_table-hover tbody tr:hover td ,
.cb_table-hover tbody tr:hover th {
  background-color: #cfe2e8;  
}

<td>内我有一个<div>,我想从这个悬停颜色疯狂中排除。

<td>
 <div class="override_td">
    {% include '_test_edit.html' %}
 </div>
</td>

所以我想出了对最初悬停css的否定。

.cb_table-hover tbody tr:hover td:not(.override_td) ,
.cb_table-hover tbody tr:hover th:not(.override_td) {
  background-color: #cfe2e8;  
}

但似乎我已经失败了,因为我的Aptana工作室大声喊叫

  

否定伪类:not(X)是一个功能符号   一个简单的选择器(不包括否定伪类本身)作为   论点。它表示一个未由其表示的元素   论点。否定可能不会嵌套; :not(:not(...))无效。   还要注意,由于伪元素不是简单的选择器,它们   不是:not()的有效参数。

     

示例以下选择器匹配HTML中的所有按钮元素   未禁用的文档。 button:not([DISABLED])以下内容   选择器代表FOO元素以外的所有元素*:not(FOO)以下内容   选择器组表示除链接之外的所有HTML元素。   html|*:not(:link):not(:visited)

所以我很困惑为什么它不喜欢我的选择器?

1 个答案:

答案 0 :(得分:1)

您的选择器看起来格式正确(并遵循Aptana警告消息中列出的规则),并且根据this fiddle,它可以正常工作。你没有提到实际的失败(只有来自Aptana的投诉),所以我认为它会正常工作。

Aptana投诉的原因可能是它没有非常密切地扫描无效的:not。可能只是因为你的选择器字符串包含两个:not伪类,Aptana认为它们是无效的,即使它们用逗号分隔。