Non. Enfin, pas vraiment. Il y a quelques sélecteurs qui peuvent vous rapprocher un peu, mais ils ne fonctionneront probablement pas dans votre exemple et n'ont pas la meilleure compatibilité entre navigateurs.
:only-child
Le sélecteur :only-child
est l'un des rares sélecteurs de comptage réel dans le sens où il s'applique uniquement lorsqu'il y a un enfant du parent de l'élément. En utilisant votre exemple idéalisé, il agit probablement comme le ferait children(1)
.
:nth-child
Le sélecteur :nth-child
pourrait en fait vous mener là où vous voulez aller en fonction de ce que vous cherchez vraiment à faire. Si vous souhaitez styliser tous les éléments s'il y a 8 enfants, vous êtes malchanceux. En revanche, si vous souhaitez appliquer des styles aux 8ème et aux éléments suivants, essayez ceci :
p:nth-child( n + 8 ){
/* ajouter des styles pour le rendre joli */
}
Malheureusement, ce ne sont probablement pas les solutions que vous recherchez. À la fin, vous devrez probablement utiliser un peu de magie Javascript pour appliquer les styles en fonction du décompte - même si vous deviez en utiliser un de ces, vous devriez sérieusement envisager la compatibilité entre navigateurs avant d'opter pour une solution purement CSS.
Spécification W3 CSS3 sur les pseudo-classes
ÉDITION J'ai lu votre question un peu différemment - il y a quelques autres façons de styliser le parent, pas les enfants. Laissez-moi vous proposer quelques autres sélecteurs :
:empty
et :not
Cela stylise les éléments qui n'ont pas d'enfants. Ce n'est pas très utile par lui-même, mais lorsqu'il est associé au sélecteur :not
, vous pouvez styliser uniquement les éléments qui ont des enfants :
div:not(:empty) {
/* Nous savons qu'il contient des choses ! */
}
Vous ne pouvez pas compter le nombre d'enfants disponibles en CSS pur ici, mais c'est un autre sélecteur intéressant qui vous permet de faire des choses intéressantes.
4 votes
Mixin de requête de quantité SCSS: codepen.io/jakob-e/pen/wgGpeP
0 votes
Jun 3 '20 edit by @vsync devrait être annulé, car il modifie l'exemple de code d'une manière qui ne correspond en aucun cas à la question elle-même ou à ses réponses.
0 votes
@NikRolls - Ma modification ne doit pas être annulée. J'ai simplement condensé le problème à son essence - qui est comment sélectionner un parent selon le nombre de nœuds enfants qu'il a. Si vous pouvez le faire, alors évidemment, vous pouvez faire ce que l'OP voulait au départ, mais le noyau est ce sélecteur lui-même et non tout ce qui vient après.