2012-03-16 28 views
14

Ví dụ:làm cách nào để áp dụng quy tắc css cho phần trước và phần tử tiếp theo trong HTML?

Bạn có thế này:

<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; 
} 

Đó là có thể?

+1

Đừng nghĩ một CSS chỉ giải pháp có sẵn nhưng một * tinh khiết * tùy chọn JavaScript sẽ là: http://stackoverflow.com/questions/574904/get-next-previous-element-using- javascript – Greg

+0

có thể trùng lặp: http://stackoverflow.com/q/1817792/3597276 –

Trả lời

23

Không thể với css thuần túy. Bạn có thể tạo kiểu phần tử tiếp theo nhưng không phải trước đó.

Nhưng bạn có thể làm một thủ thuật với css. Thay vì cho lớp được chọn, bạn có thể đặt lớp học cho phần tử trước đó của mình. Như thế này:

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; 
} 

Kiểm tra này http://jsfiddle.net/S5kUM/2/

2

Điều này sẽ phải được thực hiện bằng JavaScript.

Nếu bạn đang sử dụng jQuery, nó có thể được thực hiện như thế này:

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

'cách áp dụng quy tắc css' ngụ ý OP muốn câu trả lời CSS – Starx

6

Nó được gọi là anh chị em chọn:

.selected + li { 
    color: red; 
} 

Fiddle here

Tuy nhiên, không có chọn anh chị em cho phần tử trước.

Các vấn đề liên quan