Czy można zdefiniować styl CSS dla elementu, który jest stosowany tylko wtedy, gdy dopasowany element zawiera określony element (jako bezpośredni element potomny)?
Myślę, że najlepiej to wyjaśnić na przykładzie.
Uwaga : staram się stylizować element nadrzędny , w zależności od tego, jakie elementy potomne zawiera.
<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>
Uwaga 2 : Wiem, że mogę to osiągnąć za pomocą javascript, ale zastanawiałem się, czy jest to możliwe przy użyciu nieznanych (dla mnie) funkcji 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; }
w idealnym świecie zwiększyłoby to margines ol
zależny od liczby li
zawartych w nim dzieci, tak że margines po lewej stronie byłby tak szeroki, jak to tylko możliwe. musiał być.