Чи можна визначити стиль 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
дітей, що містяться, так що поле зліва буде лише таким же широким, як і потрібно було.