2011-03-13 8 views

Répondre

-1

Essayez cette

.testparent .test:first-child { 
    color: red; 
} 

<div class="testparent"> 
<div class="test">test</div> 
<div class="test">test</div> 
<div class="test">test</div> 
</div> 

la première div 'test' a la couleur rouge seulement.

+0

Um, non, qui correspond au premier 'p' de chaque' .test'. – BoltClock

+0

ouais, je l'ai édité. ressembler à 'Peter Of The Corn' l'a résolu d'une autre manière ... –

+1

Et si le premier enfant n'a pas '.test', mais un autre frère, alors rien ne sera sélectionné. – BoltClock

42

Si vous avez besoin du premier élément avec une certaine classe parmi ses frères et sœurs, vous pouvez utiliser

.myclass { 
    /* styles of the first one */ 
} 

.myclass ~ .myclass { 
    /* styles of the others (must cancel the styles of the first rule) */ 
} 

Ne pas essayer d'utiliser .myclass:not(.myclass ~ .myclass) de le faire en une seule règle, il ne fonctionnera pas puisque :not() n'accepte que les sélecteurs simples entre parenthèses.

Si vous voulez le premier .myclass dans le document entier, il n'y a aucun moyen de le faire avec CSS seul.

Les approches :nth-of-type() ou :nth-child() affichées sont erronées, même si elles correspondent par hasard aux éléments que vous voulez dans votre page.

Support navigateur du sélecteur de frères et sœurs (~): IE7 + et tous les autres.

+3

+1 Bon tour (support du navigateur nonobstant). – BoltClock

+1

La prise en charge du navigateur est en fait meilleure que celle des pseudo-classes structurelles CSS. Edited ma réponse pour l'inclure. –

+0

Oh, c'est délicieux. – BoltClock

-1
.class-name:first-of-type { 
    ⋮ declarations 
} 
+6

Le sélecteur ': first-of-type' s'applique aux noms d'éléments, pas aux noms de classes: https://developer.mozilla.org/en-US/docs/Web/CSS/:first-of-type –

Questions connexes