2014-01-09 70 views
3

什麼即時試圖做的是建立一個全球性類如何讓css過渡效果適用於所有的孩子?

.animate { 
    -webkit-transition:0.2s; 
    -moz-transition:0.2s; 
    -o-transition:0.2s; 
    transition:0.2s; 
} 

並把它作爲

<div class="element animate"> 
<div class="child"></div> 
</div> 

然而,每當我試圖

.element:hover .child{ 
    background:#000; 
} 

它不適用的過渡。有沒有辦法做到這一點?或者我只需要將.animate應用於每個子元素?

此外,關於我試圖做什麼,它是實用的?

謝謝!

回答

9

相反,它適用於每一個孩子的,只是使用直接子選擇器(>):

.animate > * { 

這樣做的好處是,你不必在child類適用於每一個兒童。 (你也可以保持孩子上課,做.child {,但是這正是你試圖避免的。)

或者,如果你想動畫每一個孩子,(即<div class='animate'><div><div>This one</div></div></div>),無論其深度,做到:

.animate * { 
+0

哇,謝謝!我不知道這很簡單。很難不接受正規教育。 順便說一下,使用這樣的全球風格是否實用?或者我最好單獨放置它? –

+0

@ Pa3k.m只要你對*所有*孩子都可以動畫,那麼是的。 (如果你說,只需要div動畫,做'.animate> div'等等) – Doorknob

1

試試這個,

.animate> * { 
    -webkit-transition:0.2s; 
    -moz-transition:0.2s; 
    -o-transition:0.2s; 
    transition:0.2s; 
} 

如果你想它會選擇.animate

所有直接子選擇所有的孩子.child然後使用

.animate * { 
    -webkit-transition:0.2s; 
    -moz-transition:0.2s; 
    -o-transition:0.2s; 
    transition:0.2s; 
} 
+0

我有點爲所有的孩子瞄準,不管他們的班級或身份證是什麼。不管怎麼說,還是要謝謝你! –