É possível definir um estilo CSS para um elemento, que será aplicado apenas se o elemento correspondente contiver um elemento específico (como o item filho direto)?
Eu acho que isso é melhor explicado usando um exemplo.
Nota : Estou tentando estilizar o elemento pai , dependendo de quais elementos filho ele contém.
<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>
Nota 2 : Eu sei que posso conseguir isso usando javascript, mas me perguntei se isso seria possível usando alguns recursos CSS desconhecidos (para mim).
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; }
em um mundo ideal, isso aumentaria a margem do ol
dependente do número de li
filhos contidos, de modo que a margem à esquerda fosse tão larga quanto precisava ser.