2012-03-16 32 views
14

例如:如何將CSS規則應用於HTML中的前一個和下一個元素?

你有這樣的:

<ul> 
<li>zero</li> 
<li>one</li> 
<li class="selected">two</li> 
<li>three</li> 
<li>more elements</li> 
</ul> 

CSS:

.selected:previous { 
    color: red; 
} 

.selected:next { 
    color: green; 
} 

這是可能的嗎?

+1

不要以爲一個CSS唯一的解決辦法是有的,但一*純* JavaScript的選擇是:http://stackoverflow.com/questions/574904/get-next-previous-element-using- javascript – Greg 2012-03-16 08:30:34

+0

可能的重複:http://stackoverflow.com/q/1817792/3597276 – 2016-03-13 00:17:11

回答

23

這對純CSS來說是不可能的。您可以設定下一個但不是之前的元素。

但你可以用CSS做一個技巧。而不是給你可以給你的以前的元素。就像這樣:

HTML

<ul> 
<li>zero</li> 
<li class="previous">one</li> 
<li>two</li> 
<li>three</li> 
<li>more elements</li> 
</ul> 

CSS

.previous{ 
    color: green; 
} 
.previous + li{ 
    color: red; 
} 
.previous + li + li{ 
    color:yellow; 
} 

入住這http://jsfiddle.net/S5kUM/2/

2

這將必須用JavaScript來完成。

如果您正在使用jQuery,這是可以做到這樣的:

$('.selected').prev().css('color', 'red'); 
$('.selected').next().css('color', 'green'); 
+4

'如何應用css規則'暗示OP要CSS解答 – Starx 2012-03-16 06:51:31

6

這就是所謂的兄弟選擇:

.selected + li { 
    color: red; 
} 

小提琴here

然而,沒有兄弟選擇了前一個元素。

相關問題