2011-02-12 150 views
5

我試圖獲得一個CSS樣式應用於頂部列表項,但無法獲得規則以所需的方式應用。在下面的例子中,我試圖刪除第一個li項目的頂部邊框。如果我在locationMenuTopItem元素上嵌入style="border-top: none;",但它需要使用樣式塊來完成。CSS規則樣式第一個列表項

爲什麼#locationMenu li塊取代#locationMenuTopItem塊?

<html> 
<head> 
<style> 
#locationMenu li { 
    border-top: 1px solid #e1e1e1;  
} 

#locationMenuTopItem { 
    border-top: none; 
} 
</style> 
</head> 
<body> 
<ul id="locationMenu"> 
    <li id="locationMenuTopItem"><a href="#">Top Menu</a> 
     <ul> 
      <li><a href="#">Sub Menu 1</a></li> 
      <li><a href="#">Sub Menu 2</a></li> 
      <li><a href="#">Sub Menu 3</a></li> 
     </ul> 
    </li> 
    <li><a href="#">Top Menu 2</a></li> 
    <li><a href="#">Top Menu 3</a></li> 
    </ul> 
</body> 

回答

13

爲什麼「#locationMenu禮」塊否決#locationMenuTopItem塊?

specific

#locationMenu > li:first-child 

應該做的工作,而無需添加額外的ID。 (雖然不是在IE6)

5

這可能是一個可能的答案:

#locationMenu li, 
#locationMenu li:first-child ul li 
{ 
    border-top: 1px solid #e1e1e1;  
} 

#locationMenu li:first-child 
{ 
    border-top:none; 
} 

這是overrulie,因爲#locationMenu李比單獨#locationMenuTopItem更深。連續越多,越深入。