2012-03-26 33 views
1

我試圖實現在更短的情況如下:使用繼承使用Less的問題?

nav > ul > li:first-child 

nav { 
     ul { 
      li:first-child { 

然而結果卻是:

nav ul li:first-child 

人能解釋這兩個CSS結果之間的差異也告訴我如何使用少得到結果「nav> ul> li:第一個孩子」

回答

2

>被稱爲子組合子。

它選擇了「直接繼承/子」,這正好是一個級別低於它的父而正常風格選擇父下的所有子元素。

<div id="level-1"> 
    <div id="level-2"> 
    <div class="level-3"></div> 
    <div class="level-3"></div> 
    </div> 
</div> 

#level-1 > div{} /* <- matches #level-2 div */ 
#level-1 div{} /* <-matches #level-2 and both .level-3 divs */ 

澄清我加入Fiddle

爲青菜,你可以使用:

#level-1{ 
    > div{ 
    } 
} 
1

CSS中的正常操作是「後裔」。當你沒有表達不同的關係時,那就少了。如在此情況下, 「童」:

nav { 
    > ul { 
     > li:first-child { 

或者, 「下面的兄弟」:

nav { 
    + ul { 
     + li:first-child {