2013-02-07 48 views
0

我正在寻找悬停父母元素,并让它更改所有孩子的CSS。我认为这很简单。这很容易说出::nth-​​child - 在家长悬停上激活

.element:hover .children{ 
} 

然后在悬停该元素时,您可以确定要受什么元素影响。我希望让所有的孩子都受到影响,但我不知道我做错了什么。下面是一个简单的例子:

http://jsfiddle.net/ZqTcT/11/

这是我使用的是特定的第n个孩子CSS:

.rowYellow:hover .rowYellow:nth-child(n){ 
    color:yellow; 
} 

我用我所知道的作品也尝试(第一个例子,其中I特定改变悬停一个元件),并使用多个元件http://jsfiddle.net/ZqTcT/12/

.rowYellow:hover .rowIcon .rowLabel{ 
    color:yellow; 
} 

我知道我进入分离像吨语句的习惯因为它不起作用,所以将它们分成两个(或更多)。

那么,我哪里错了?可以采取哪一种方法?如果是这样......怎么样?

任何和所有的帮助表示赞赏。

回答

2
.rowYellow:hover .rowYellow:nth-child(n){ 

上面仅影响一个内与rowYellow类元素与rowYellow类。

而是影响到所有的孩子,只是这样做与*选择:

.rowYellow:hover *{ 
    color:yellow; 
} 

jsFiddle A

你的第二选择说“rowIcon类的元素中rowLabel类的所有元素中徘徊的元素类rowYellow“,这不是你想要的。相反,你要一个逗号分隔的选择:

.rowYellow:hover .rowIcon, .rowYellow:hover .rowLabel{ 
    color:yellow; 
} 

jsFiddle B

作为一个侧面说明,我还建议30 CSS selectors you must memorize,因为它是非常有帮助的,直到你每次选择敲定好。

+0

谢谢!我不知道*选择器。你是指“在同一个班级内与黄色行”是什么意思?我假设.elment:nth-​​child()影响该元素内的子元素,在这种情况下,它失败了,因为我需要()内的整数。这是正确的,对吗?因此,如果想要选择所有的孩子,我不想选择所有的孩子,但只是一些,我可以做出类似的陈述,并且当你有X元素时,就会对一些孩子做这些事情(不管是())的X元素。 – jstacks

+0

第一个问题是,为了“正确”工作,它应该是['.rowYellow:hover:nnth-child(n){'](http://jsfiddle.net/ZqTcT/16/) 。你想要选择的内心孩子需要'rowYellow'类否则。对不起,我错了 - 它用'n'取整数('1'是隐式的)。 – Eric