我需要将outer
类的后代类(我们称其为inner
)作为目标,但only是具有inner
类的第一个元素(这不是外部的第一个子类).在outer
内部第一次出现inner
之前,可能会出现任意数量的元素和嵌套级别,在那之后,inner
可能会(重新)出现多次.下面是一个简化的HTML struct (我try 使用:nth-child()
失败了:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<style>
.outer :nth-child(1 of .inner) {
color:red;
}
</style>
</head>
<body>
<div class="outer">
<!-- Arbitrary number of elements may happen here -->
<div>
<!-- Arbitrary number of elements may happen here -->
<div class="inner">
<span>Should BE affected!</span>
</div>
</div>
<!-- Arbitrary number of elements may happen here -->
<div>
<!-- Arbitrary number of elements may happen here -->
<div>
<!-- Arbitrary number of elements may happen here -->
<div class="inner">
<span>Should NOT be affected!</span>
</div>
</div>
</div>
</div>
</body>
</html>
在这个例子中,inner
只出现两次,但它可以出现多次.
我无法控制生成的HTML,我所能做的就是将.outer
类添加到外部div(inner
类实际上是由我正在使用的控件呈现库添加的,我没有control--没有双关语的意思).
所以我需要定位这个"第一个"inner
个元素,并忽略它的所有其他实例.我怎么才能做到这一点?