Non, pas vraiment. Il y a quelques sélecteurs qui peuvent vous rapprocher un peu, mais ne fonctionneront probablement pas dans votre exemple et n'ont pas la meilleure compatibilité de navigateur.
:only-child
Le :only-child
est l'un des rares vrais sélecteurs de comptage dans le sens où il n'est appliqué que lorsqu'il y a un enfant du parent de l'élément. En utilisant votre exemple idéalisé, il agit comme le children(1)
ferait probablement.
:nth-child
Le :nth-child
sélecteur peut vous amener où vous voulez aller en fonction de ce que vous cherchez vraiment à faire. Si vous voulez styliser tous les éléments s'il y a 8 enfants, vous n'avez pas de chance. Si, toutefois, vous souhaitez appliquer des styles au 8e et aux éléments ultérieurs, essayez ceci:
p:nth-child( n + 8 ){
/* add styles to make it pretty */
}
Malheureusement, ce ne sont probablement pas les solutions que vous recherchez. En fin de compte, vous devrez probablement utiliser un peu de magie Javascript pour appliquer les styles en fonction du nombre - même si vous deviez utiliser l'un d'entre eux, vous auriez besoin de jeter un œil attentif à la compatibilité du navigateur avant de partir avec un pur Solution CSS.
W3 CSS3 Spec sur les pseudo-classes
EDIT J'ai lu votre question un peu différemment - il y a deux autres façons de styliser le parent , pas les enfants. Permettez-moi de lancer quelques autres sélecteurs à votre façon:
:empty
et :not
Cela style les éléments qui n'ont pas d'enfants. Pas très utile en soi, mais lorsqu'il est associé au :not
sélecteur, vous ne pouvez styliser que les éléments qui ont des enfants:
div:not(:empty) {
/* We know it has stuff in it! */
}
Vous ne pouvez pas compter le nombre d'enfants disponibles avec du CSS pur ici, mais c'est un autre sélecteur intéressant qui vous permet de faire des choses intéressantes.