Nun, nicht wirklich. Es gibt einige Selektoren, die Sie etwas näher bringen können, aber in Ihrem Beispiel wahrscheinlich nicht funktionieren und nicht die beste Browserkompatibilität aufweisen.
:only-child
Dies :only-child
ist einer der wenigen echten Zählselektoren in dem Sinne, dass er nur angewendet wird, wenn ein untergeordnetes Element des übergeordneten Elements des Elements vorhanden ist. Anhand Ihres idealisierten Beispiels verhält es sich wie children(1)
wahrscheinlich.
:nth-child
Der :nth-child
Selektor bringt Sie möglicherweise tatsächlich dahin, wo Sie hin möchten, je nachdem, was Sie wirklich tun möchten. Wenn Sie alle Elemente stylen möchten, wenn 8 Kinder vorhanden sind, haben Sie kein Glück. Wenn Sie jedoch Stile auf das 8. und spätere Element anwenden möchten, versuchen Sie Folgendes:
p:nth-child( n + 8 ){
/* add styles to make it pretty */
}
Leider sind dies wahrscheinlich nicht die Lösungen, nach denen Sie suchen. Am Ende müssen Sie wahrscheinlich einige Javascript-Assistenten verwenden, um die Stile basierend auf der Anzahl anzuwenden. Selbst wenn Sie einen dieser Stile verwenden würden, müssten Sie sich die Browserkompatibilität genau ansehen, bevor Sie mit einem reinen Stil beginnen CSS-Lösung.
W3 CSS3-Spezifikation für Pseudoklassen
BEARBEITEN Ich habe Ihre Frage etwas anders gelesen - es gibt noch ein paar andere Möglichkeiten, die Eltern zu stylen , nicht die Kinder. Lassen Sie mich ein paar andere Selektoren auf Ihren Weg werfen:
:empty
und :not
Dadurch werden Elemente formatiert, die keine untergeordneten Elemente haben. Für sich genommen nicht so nützlich, aber in Verbindung mit dem :not
Selektor können Sie nur die Elemente formatieren, die untergeordnete Elemente haben:
div:not(:empty) {
/* We know it has stuff in it! */
}
Sie können hier nicht zählen, wie viele Kinder mit reinem CSS verfügbar sind, aber es ist ein weiterer interessanter Selektor, mit dem Sie coole Dinge tun können.