2012-03-16 15 views
14

उदाहरण के लिए:एचटीएमएल में पिछले और अगले तत्व को सीएसएस नियम कैसे लागू करें?

आप इस राशि:

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

सीएसएस:

.selected:previous { 
    color: red; 
} 

.selected:next { 
    color: green; 
} 

कि संभव है?

+1

एक सीएसएस मत सोचो एकमात्र समाधान उपलब्ध है, लेकिन एक * शुद्ध * जावास्क्रिप्ट विकल्प होगा: http://stackoverflow.com/questions/574904/get-next-previous-element-using- जावास्क्रिप्ट – Greg

+0

संभावित डुप्लिकेट: http://stackoverflow.com/q/1817792/3597276 –

उत्तर

23

शुद्ध सीएसएस के साथ यह संभव नहीं है। आप अगला शैली बना सकते हैं लेकिन पिछले तत्व नहीं।

लेकिन आप सीएसएस के साथ एक चाल कर सकते हैं। कक्षा देने के बजाय चयनित आप अपने पिछले तत्व को कक्षा दे सकते हैं। इस तरह:

एचटीएमएल

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

सीएसएस

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

चेक इस http://jsfiddle.net/S5kUM/2/

2

यह जावास्क्रिप्ट के साथ किया जाना होगा।

आप jQuery का उपयोग कर रहे हैं, तो इसे इस तरह किया जा सकता है:

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

'सीएसएस नियम कैसे लागू करें' का तात्पर्य है ओपी सीएसएस जवाब चाहता है – Starx

6

यह भाई चयनकर्ता कहा जाता है:

.selected + li { 
    color: red; 
} 

फिडल here

हालांकि, वहाँ के लिए कोई भाई चयनकर्ता है पिछले तत्व।

संबंधित मुद्दे