¿Es posible definir un estilo CSS para un elemento, que solo se aplica si el elemento coincidente contiene un elemento específico (como elemento secundario directo)?
Creo que esto se explica mejor con un ejemplo.
Nota : Estoy tratando de diseñar el elemento primario , dependiendo de los elementos secundarios que 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 : Sé que puedo lograr esto usando JavaScript, pero me preguntaba si esto es posible usando algunas características CSS desconocidas (para mí).
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; }
en un mundo ideal, esto aumentaría el margen del ol
dependiente en la cantidad de li
hijos contenidos para que el margen de la izquierda solo sea tan ancho como sea posible. necesitaba ser.