È possibile definire uno stile CSS per un elemento, che viene applicato solo se l'elemento corrispondente contiene un elemento specifico (come elemento figlio diretto)?
Penso che questo sia meglio spiegato usando un esempio.
Nota : sto cercando di dare uno stile all'elemento genitore , a seconda degli elementi figlio che contiene.
<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 : So di poterlo raggiungere utilizzando JavaScript, ma mi chiedevo solo se ciò fosse possibile utilizzando alcune funzioni CSS (per me) sconosciute.
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; }
in un mondo ideale questo aumenterebbe il margine del ol
dipendente dal numero di li
bambini contenuti in modo che il margine a sinistra sia largo solo quanto doveva essere.