2011-01-06 73 views
5

你好是有一種方法與CSS風格的第二個元素在頁面上具有相同的類與第一個稍微不同。風格第二個元素在頁面上具有相同的類

例如,我有一個頁面上有兩個ul,其中有一類topbardropdownmenu。我想給第二個ul第一個不同的背景。有沒有辦法做到這一點與改變HTML?

回答

8

什麼持有<ul>元素?我假設一個<div id = "lists">

/* First element */ 
div > ul.topbardropdownmenu:first-child{ 

} 

/* Rest of the elements */ 
div > ul.topbardropdownmenu{ 

} 

...或者

div > ul.topbardropdownmenu:not(:first-child)

+0

:第一個孩子在IE中不起作用,所以您可能需要使用服務器代碼或JavaScript來解決此問題。 – 2011-01-06 20:59:24

7

您可以用:nth-child()僞選擇這樣做。這是CSS3,但不支持在某些瀏覽器(例如< = IE8 & < = FF3.0不支持它)。

.topbardropdownmenu:nth-child(2) { background: #FF0000; }

你可以用JavaScript做一個跨瀏覽器兼容的方式不過,如果這是一個選擇。

2

這取決於哪些瀏覽您的用戶使用,您可能能夠使用nth-of-type CSS僞選擇:

ul.topbardropdownmenu:nth-of-type(2) { 
    /* styles the second ul of class=topbardropdownmenu 
} 

如果有這些ul元素髮生的特定模式,你可以使用後代和/或兄弟選擇器:

div > ul.topbardropdownmenu { 
    /* styles all ul.topbardropdownmenu that are the immediate descendants of a div */ 
} 

p + ul.topbardropdownmenu { 
    /* styles all ul.topbardropdownmenu that immediately follow a p */ 
} 
相關問題