0

当悬停在表格上时,我有一个像下面这样的 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 Studio 大喊

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

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

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

4

1 回答 1

1

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

Aptana 抱怨的原因可能是它没有:not非常仔细地扫描无效。有可能仅仅因为您的选择器字符串包含两个:not伪类,Aptana 就认为它们是无效的,即使它们是用逗号分隔的。

于 2012-12-17T19:34:27.837 回答