Можно ли определить стиль CSS для элемента, который применяется, только если соответствующий элемент содержит определенный элемент (как прямой дочерний элемент)?
Я думаю, что это лучше всего объяснить на примере.
Примечание : я пытаюсь стилизовать родительский элемент , в зависимости от того, какие дочерние элементы он содержит.
<style>
/* note this is invalid syntax. I'm using the non-existing
":containing" pseudo-class to show what I want to achieve. */
div:containing div.a { border: solid 3px red; }
div:containing div.b { border: solid 3px blue; }
</style>
<!-- the following div should have a red border because
if contains a div with class="a" -->
<div>
<div class="a"></div>
</div>
<!-- the following div should have a blue border -->
<div>
<div class="b"></div>
</div>
Примечание 2 : я знаю, что могу добиться этого с помощью javascript, но мне просто интересно, возможно ли это с помощью некоторых неизвестных (для меня) функций CSS.
ol < li:nth-child(n+10) { margin-left: 2rem; } ol < li:nth-child(n+100) { margin-left: 3rem; } ol < li:nth-child(n+1000) { margin-left: 4rem; }
в идеальном мире это увеличило бы предел ol
зависимости от количества содержащихся в нем li
дочерних элементов, так что поле слева было бы таким же широким, как оно. нужно быть.