2013-07-27 140 views
3

當我試圖使用「>」選擇父元素的所有直接子元素時,它可以處理一些屬性,如邊框和全部,但不能與類似font-properties顏色,字體,重量等。CSS兒童選擇器(>)不能使用某些屬性

我的HTML是

<ul> 
    <li>Item 1</li> 
    <li> 
    <ol> 
     <li>Subitem 2A</li> 
     <li>Subitem 2B</li> 
    </ol> 
    </li> 
</ul> 

CASE1 CSS:

ul>li { 
    color:#F00; 
} 

但這裏的顏色:#F00適當ty被應用於所有「li」元素,但是我希望它僅適用於「ul」的直接「li」。

CASE 2 CSS:

ul>li { 
    border: solid 1px #000; 
} 

這一個很適合我和邊境只有被應用到只有直理子。

我知道它可以通過覆蓋其他一些類和全部來解決。但我想知道,爲什麼一些CSS屬性得到繼承,而其他人不是

+0

你是什麼意思,直接「李」? –

+3

'ol'的'li'孩子從祖先'li's繼承顏色 – Musa

+0

幫你一個忙,並添加一些類! – DevlshOne

回答

4

這是由於某些CSS屬性的默認繼承能力。這些屬性的值將默認傳送給孩子。

W3C的這份文檔給出了各種CSS屬性的詳細繼承列表。 Full property table

+0

爲什麼你不接受其他答案之一呢? – BoltClock

+2

@BoltClock那些答案是在談論如何覆蓋條件,我已經知道了。但我尋找的是這種現象背後的原因。 –

0

試試這個

Demo

<ul> 
    <li>Item 1</li> 
    <li> 
    <ol> 
     <li>Subitem 2A</li> 
     <li>Subitem 2B</li> 
    </ol> 
    </li> 
</ul> 

CSS

ul > li { 
    color:#F00; 
} 
ul > li > ol > li { 
    color:#000; 
} 
0

試試這個

ul > li ol li {color:black;} 
0

隨着上市元素已經從其父繼承顏色屬性,你需要重寫它。

您可以在下面你以前的風格加上像

li { 
    color: #000; 
} 

ul>li { 
    color:#F00; 
} 

它覆蓋的顏色:繼承值。