Нет.Ну не совсем.Есть пара селекторов, которые могут немного приблизить вас, но, вероятно, не сработают в вашем примере и не обеспечивают наилучшую совместимость с браузерами.
: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 Спецификация для псевдоклассов
EDIT Я прочитал ваш вопрос немного по-другому - есть еще пара способовстиль родитель , а не дети.Позвольте мне добавить несколько других селекторов по-вашему:
:empty
и :not
Это элементы стиля, которые не имеют дочерних элементов.Сам по себе он не очень полезен, но в сочетании с селектором :not
вы можете стилизовать только те элементы, у которых есть дочерние элементы:
div:not(:empty) {
/* We know it has stuff in it! */
}
Здесь вы не можете сосчитать, сколько дочерних элементов доступно с чистым CSS., но это еще один интересный селектор, который позволяет вам делать классные вещи.