Apakah mungkin untuk mendefinisikan gaya CSS untuk suatu elemen, yang hanya diterapkan jika elemen yang cocok mengandung elemen tertentu (sebagai item turunan langsung)?
Saya pikir ini paling baik dijelaskan menggunakan contoh.
Catatan : Saya mencoba gaya elemen induk , tergantung pada elemen anak apa yang dikandungnya.
<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>
Catatan 2 : Saya tahu saya bisa mencapai ini menggunakan javascript, tapi saya hanya bertanya-tanya apakah ini mungkin menggunakan beberapa fitur CSS yang tidak diketahui (untuk saya).
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; }
Dalam dunia ideal ini akan meningkatkan margin ol
ketergantungan pada jumlah li
anak yang terkandung sehingga margin di sebelah kiri hanya akan selebar itu dibutuhkan.