2012-09-20 48 views
1

我在HTML中具有非常基本的列表,看起來像這樣:似乎無法覆蓋CSS屬性(margin-right)?

<div id="navmenu"> 
    <ul> 
    <li>photography</li> 
    <li>&#149</li> 
    <li>people</li> 
    <li>places</li> 
    <li>things</li> 
    <li id="lastElement">about</li> 
    </ul> 
</div> 

我的CSS格式是這樣的:

div#navmenu li { 
    display: inline; 
    margin-right: 40px; 
} 

不過,我想最後一個li元素的保證金右是0像素。所以我做了:

li#lastElement { 
    margin-right: 0px; 
} 

當我檢查Chrome的開發工具時,這個最後的CSS規範被劃掉了。我不明白爲什麼它被「div#nav menu li」屬性覆蓋?是不是最後的li元素有其自己的id更具體?

任何幫助,將不勝感激。提前致謝。

回答

3

覆蓋它的那個更具體,它有兩個標記和一個id選擇器,而另一個只有一個標記和id選擇器。

您可以將其更改爲div#navmenu li#lastElement使其他選擇器不太具體。

+0

因此,如果兩個CSS規範針對相同的元素,把它歸結爲ID選擇,然後標籤的絕對計數? – kkSlider

+2

http://w3.org/tr/css21/cascade.html#specificity – reisio

+0

感謝您的幫助。 – kkSlider

1

嗨,現在習慣了這種

div#navmenu #lastElement { 
    margin-right: 0px; 
} 

或本

div#navmenu li:last-child { 
    margin-right: 0px; 
}