Задать вопрос

Как применить стиль к элементу, в зависимости от количества потомков (Plain CSS)?

Собственно, есть простая, словно дерево, менюшка (исходники), в которой используется только CSS. Хотелось бы иметь возможность, всё так же, исключительно средствами CSS, установить определённые стили (пускай это будет цвет фона, для простоты) для пунктов меню, у которых есть дочерние элементы. Возможно ли это?

P.S.: я не волшебник, я только учусь. На менюшку в текущем варианте было убито часов 5 времени.
  • Вопрос задан
  • 4532 просмотра
Подписаться 5 Оценить Комментировать
Решения вопроса 1
@stas3572
:not() и :only-child

Только придется кое-что немного поменять - перевесить стили на a вместо li и такой фокус возможен:

ul.menu li a:not(:only-child) {...}

В реальном проекте конечно маловероятно что пригодится, я подобные вещи скорее называю задачками на сообразительность / для развития ума / на общее знание селекторов.

В реальных проектах для этого используйте js или css-препроцессоры, или да, помечайте классами
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
madmages
@madmages
Человек прямоходящий
ну как вариант приходит в голову что то такое
div.child div div div div {
    font-size:10px;
}
div.child div div div {
    font-size:20px;
}
Ответ написан
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Идея применять только css конечно хороша. Но по вопросу в голову приходит только использование js. Есть какая-то веская причина не использовать его?
Ответ написан
Lisonok
@Lisonok
В css3 нельзя установить стили для родительского элемента, только js
Расскажите, что вам нужно, может быть и можно)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы