我有一个像下面这样的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)
所以我很困惑为什么它不喜欢我的选择器?
答案 0 :(得分:1)
您的选择器看起来格式正确(并遵循Aptana警告消息中列出的规则),并且根据this fiddle,它可以正常工作。你没有提到实际的失败(只有来自Aptana的投诉),所以我认为它会正常工作。
Aptana投诉的原因可能是它没有非常密切地扫描无效的:not
。可能只是因为你的选择器字符串包含两个:not
伪类,Aptana认为它们是无效的,即使它们用逗号分隔。