2012-12-12 62 views
1

我有一個無序列表,其ID爲「導航」和一些子列表項元素。:第一個孩子定位所有子元素

我想選擇第一個項目與:first-child,但它是應用我用這個CSS到所有其他列表項目。

ul#navigation li:first-child{ 
    background:#fff; 
} 

因此,重申:這是給每個列表項目一個白色的背景。我只想選擇第一個元素。出了什麼問題?

+2

對我來說工作得很好:http://jsfiddle.net/HyKFJ/。發佈您的HTML。 – Blender

+0

我正要這樣做,但意識到我正在用鏈接包圍每個列表項目。我想保持這種方式,因爲我希望整個李是一個鏈接,但這會導致這個問題。 –

+1

@MarkLyons不要用鏈接包圍你的'li';而是將鏈接'display'屬性設置爲'block'。 – Sampson

回答

4

根據該意見,你的問題是,您的標記看起來像這樣:

<ul id="navigation"> 
    <a href="http://google.com"> 
     <li>Google</li> 
    </a> 
</ul> 

注意如何每li將這種模式下:first-child。我建議你在你的列表項目中使用更合適的嵌套錨點結構。如果你想錨,填補了列表項,設置其顯示到塊:

<ul id="navigation"> 
    <li><a href="http://google.com">Google</a></li> 
</ul> 

並結合CSS:

#navigation a { display: block } 

一旦你有了到位的結構性變化,你的選擇應該定位第一個列表項:

/* > to target only immediate list items */ 
#navigation > li:first-child { 
    background: red; 
} 
+0

這可以工作,但在鏈接中添加'display:block'並不會在div的整個區域中生效。 –

+0

@MarkLyons對列表項目來說,填充/邊距可能會妨礙您的審美。你可以把你的頁面在線,或者在http://jsfiddle.net上做一個演示嗎? – Sampson

+0

是的,李有一個頂部和底部填充。我在鏈接中添加了'width:100%',並將填充移至鏈接樣式。一切順利,謝謝! –

相關問題