2013-07-27 90 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; 
} 

它覆盖的颜色:继承值。