2014-03-31 63 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指定一个类的前一个元素。谢谢 –