在CSS类中实现悬停颜色更改不起作用

时间:2015-02-25 08:29:45

标签: css twitter-bootstrap

在我的例子中,我有一个基于Bootstrap类的多行具有不同颜色的表("成功","警告",...)。 首先,如果鼠标已经超过"成功"它变得更加绿色"没关系。如果点击"成功"排,我取代"成功"我的班级和#34; greenSelected"但如果我越过那一行,悬停颜色就是灰色,而不是" greenSelected"。

我尝试使用CSS中的其他解决方案!重要但是id不起作用。

.greenSelected tr:hover{
     background-color:#D0E9C6;
}


.greenSelected:hover{
    background-color:#D0E9C6 !important;
}

实施例: http://jsfiddle.net/5ddxao12/

2 个答案:

答案 0 :(得分:4)

这是错误的选择器和specificity不足的组合。请尝试使用 (See JSFiddle)

.table-hover > tbody > .greenSelected:hover td {
  background-color: #D0E9C6;
}

<强>解释

在您包含的Bootstrap CSS中定义的是此规则:

.table-hover > tbody > tr:hover > td, ... {
  background-color: #f5f5f5;
}

覆盖此规则,您的新规则必须更多特定(在我的解决方案中,我们通过选择一个元素而不是它的标记来实现这一点名称)。此外,正如in this answer指出的那样,你应该将悬停选择器设置在 table-row 级别,但是你希望改变背景颜色的元素是它的表-cell 孩子。

虽然可以使用!important声明来克服特异性问题,但我不推荐它。相反,请确保无论何时创建CSS规则,您都只需要具体,并且很好地理解为什么要应用规则。

答案 1 :(得分:0)

背景在td上设置,所以这样做:

tr.greenSelected:hover td{
  background-color:green !important;
}

添加!important以覆盖bootstraps规则。