2014-03-31 64 views
0

它可以通過特定的類選擇父元素嗎?在CSS中更改父元素

舉一個例子,我有一個HTML列表:

<ul> 
    <li>Entry 1</li> 
    <li>Entry 2</li> 
    <li class="selected">Entry 3</li> 
    <li>Entry 4</li> 
</ul> 

所有元素有一個底部邊框:

ul li { 
    border-bottom: 1px solid #FF0000; 
} 

ul li.selected { 
    border-bottom: 1px solid #0000FF; 
} 

如何我可以告訴在CSS前一元素的顏色是藍色? 對於小例子(我知道:previous-child無效/存在,但它是一個小例子):

ul li.selected:previous-child { 
    border-bottom: 1px solid #0000FF;  
} 

這裏是一個小提琴:http://jsfiddle.net/3W7PQ/

+0

你不能選擇以前的兄弟姐妹,也不能用CSS選擇父母元素。您需要使用基於JavaScript的解決方案。 –

+0

也許你可以使用':: before' – 87387264223462

+0

':之前'或':: before'不是一個解決方案。在'之前'你只能到元素的開始而不是之前。 –

回答

1

CSS 4將允許這與the subject indicator,但沒有辦法在CSS中,因爲它現在通過引用下列元素來選擇一個元素。

通常的解決方法是讓任何生成的頁面指定關係本身。因此,例如,您可能有<li class="before-selected">,然後是<li class="selected">

+0

好的,CSS4不是一個選項 - 它不適用於所有瀏覽器。對我來說,只不過是通過Javascript指定一個類的前一個元素。謝謝 –