2013-05-28 70 views
23

我有一個無序列表如下:應用CSS只有父母而不是孩子

<div class="list"> 
<ul> 
    <li> 
     list1 
     <ul> 
      <li>Sub list1</li> 
      <li>Sub list2</li> 
      <li>Sub list3</li> 
     </ul> 
    </li> 
    <li> 
     list2 
     <ul> 
      <li>Sub list1</li> 
      <li>Sub list2</li> 
      <li>Sub list3</li> 
     </ul> 
    </li> 
</ul> 
</div> 

我現在只想爲第一個列表,但不是它的孩子ulli應用CSS。我嘗試了以下操作:

.list ul li{ 
background:#ccc; 
} 

...但背景顏色應用於所有列表。應該做什麼來改變只有父母而不是孩子的CSS。

+1

'.L ist> ul> li' - '>'選擇器只選擇元素的直接子元素。 – CBroe

回答

31

使用嫡系操作>爲:

.list > ul > li { ... } 

>運營商只選擇那些面前的元素(一個或多個)直接子元素。

但是請注意,儘管沒有任何背景顏色直接分配給該列表項,但該列表項中的任何內容當然會具有列表項的背景。

5

可以使用>運算符的是,像這樣的:如果你想只將bgcolor適用於UL

.List > ul > li { background-color: #ccc; } 

.list > ul > li{ 
    background:#ccc; 
} 
2

這樣做的唯一方法是像簡單地做:

.List > ul { background-color: #ccc; } 

:)

相關問題