J'aimerais sélectionner les deux premiers éléments d'une liste non ordonnée. Je peux sélectionner le premier article ainsi:
ul li:nth-child(1) a {
background: none repeat scroll 0 0 beige;
}
OR
ul li:first-child a {
background: none repeat scroll 0 0 beige;
}
J'aimerais sélectionner à la fois les premier et deuxième postes - comment puis-je le faire?
Sans l'utilisation de js ou de :nth-child
(qui, à mon avis, n'est pas pris en charge dans IE)
ul li:first-child, ul li:first-child + li {
list-style: none;
}
Ici est une démo testée dans IE7
Pour sélectionner les premier et deuxième enfants, vous pouvez utiliser une seule pseudo-classe :nth-child()
comme ceci:
ul li:nth-child(-n+2) a {
background: none repeat scroll 0 0 beige;
}
Cela fonctionne dans IE9 + mais ce n'est pas le plus court. Le sélecteur @ BoltClock est la solution la plus courte pour IE9 +. Je pense que celui-ci est légèrement plus facile à comprendre, je vais donc le laisser comme alternative.
ul li:first-child a, ul li:nth-child(2) a
{
background: none repeat scroll 0 0 biege;
}
Votre meilleur choix pour la compatibilité entre navigateurs serait d’utiliser jQuery et d’affecter une classe à l’élément de la liste.
Quelque chose comme...
$( function() {
$('li').each( function() {
if( $(this).index() == 1 || $(this).index() == 2 ) {
$(this).addClass('first_or_second');
}
});
});
.trJobStatus ul{
width: 500px;
height:500px;
float: left;
}
.trJobStatus ul li{
width: 50px;
height:50px;
border: solid 1px #ddd;
list-style:none;
display: inline-block;
text-align: center;
line-height:50px;
font-size:25px;
}
.trJobStatus ul li:nth-child(1),
.trJobStatus ul li:nth-child(5){
color:red;
}
<div class="trJobStatus">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
.trJobStatus ul li: nième enfant (1), .trJobStatus ul li: nième enfant (2) { couleur: #fff; couleur d'arrière-plan: #ddd; }