Ist es möglich, einen CSS-Stil für ein Element zu definieren, der nur angewendet wird, wenn das übereinstimmende Element ein bestimmtes Element enthält (als direktes untergeordnetes Element)?
Ich denke, das lässt sich am besten anhand eines Beispiels erklären.
Hinweis : Ich versuche, das übergeordnete Element zu formatieren , je nachdem, welche untergeordneten Elemente es enthält.
<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>
Anmerkung 2 : Ich weiß, dass ich dies mit Javascript erreichen kann, aber ich habe mich nur gefragt, ob dies mit einigen unbekannten (für mich) CSS-Funktionen möglich ist.
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 einer idealen Welt würde dies die Marge der CSS erhöhenol
von der Anzahl der enthaltenen li
Kinder abhängigen Kinder so dass der Spielraum auf der linken Seite nur so breit wäre wie er musste sein.