Нет, не совсем. Есть пара селекторов, которые могут немного приблизить вас, но, вероятно, не сработают в вашем примере и не имеют лучшей совместимости с браузером.
:only-child
Это :only-child
один из немногих селекторов с истинным счетом в том смысле, что он применяется только тогда, когда есть один дочерний элемент родительского элемента. Используя ваш идеализированный пример, он действует как, children(1)
вероятно, будет.
:nth-child
:nth-child
Селектор может реально получить , где вы хотите пойти в зависимости от того, что вы действительно хотите сделать. Если вы хотите стилизовать все элементы, если есть 8 детей, вам не повезло. Однако, если вы хотите применить стили к 8-му и более поздним элементам, попробуйте это:
p:nth-child( n + 8 ){
/* add styles to make it pretty */
}
К сожалению, это, вероятно, не те решения, которые вы ищете. В конце концов, вам, вероятно, потребуется использовать некоторые Javascript Wizardry для применения стилей, основанных на количестве - даже если бы вы использовали один из них, вам нужно было бы внимательно взглянуть на совместимость браузера, прежде чем переходить с чистого CSS решение.
W3 CSS3 Spec по псевдоклассам
РЕДАКТИРОВАТЬ Я читаю ваш вопрос немного по-другому - есть пара других способов стилизации родителей , а не детей. Позвольте мне добавить несколько других селекторов по-вашему:
:empty
и :not
Это стили элементов, которые не имеют детей. Не очень полезно само по себе, но в сочетании с :not
селектором вы можете стилизовать только те элементы, которые имеют дочерние элементы:
div:not(:empty) {
/* We know it has stuff in it! */
}
Вы не можете сосчитать, сколько детей доступно с чистым CSS, но это еще один интересный селектор, который позволяет вам делать классные вещи.