是否可以为元素定义CSS样式,该样式仅在匹配的元素包含特定元素(作为直接子项)时才适用?
我认为最好用一个例子来解释。
注意:我正在尝试设置父元素的样式,具体取决于它包含的子元素。
<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>
注意2:我知道我可以使用javascript来实现,但是我只是想知道是否可以使用一些(对我而言)未知的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; }
一个完美示例:在理想的世界中,这将增加ol
依赖于所包含的li
子代数的边距,以使左侧的边距仅与其需要。