Par exemple:
Tu as ceci:
<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;
}
C'est possible?
Ce n'est pas possible avec du CSS pur. Vous pouvez styliser l'élément suivant mais pas le précédent.
Mais vous pouvez faire un tour avec css. Au lieu de donner la classe sélectionnée , vous pouvez donner la classe à votre élément précédent . Comme ça:
[~ # ~] 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;
}
Vérifiez cela http://jsfiddle.net/S5kUM/2/
Il s'appelle le frère frère:
.selected + li {
color: red;
}
Violon ici
Cependant, il n'y a pas de sélecteur frère pour l'élément précédent. La
Cela devrait être fait avec JavaScript.
Si vous utilisez jQuery, cela peut être fait comme ceci:
$('.selected').prev().css('color', 'red');
$('.selected').next().css('color', 'green');
Vous pouvez utiliser display: flex;
et flex-direction: row-reverse;
pour inverser la liste.