带有类的第一个子实例的CSS选择器?

And*_*rew 5 html css css-selectors css3

是否有一个CSS选择器用于具有类的子项的第一个实例?例如,请使用以下代码:

<div id="container">
    <div class="nothing">
    </div>
    <div class="child"> <!-- SELECT THIS ONE -->
    </div>
    <div class="child"> <!-- NOT THIS ONE -->
    </div>
    <div class="child"> <!-- NOT THIS ONE -->
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

是否有一个css选择器来设置第一次出现div类"child"的样式?

I a*_*ica 8

您可以使用通用兄弟组合器.child为后续.child兄弟姐妹设置样式并恢复样式,:~

.child {
  color: #ff0000;
}
.child ~ .child {
  color: inherit;
}
Run Code Online (Sandbox Code Playgroud)
<div id="container">
  <div class="nothing">nothing
  </div>
  <div class="child">SELECT THIS ONE
  </div>
  <div class="child">NOT THIS ONE
  </div>
  <div class="child">NOT THIS ONE
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 或者甚至更好地重置颜色以继承,它将返回默认值! (2认同)

Hir*_*shy -2

您可以使用“:nth-child”CSS 选择器。

演示: http: //jsfiddle.net/2pyvz/

CSS:

.child:nth-child(2) { color:red; }
Run Code Online (Sandbox Code Playgroud)

  • 不起作用:http://jsfiddle.net/fkling/Pex2R。原因:`:first-child` 选择元素*当且仅当*它是其父元素的第一个子元素。在OP的示例中,“div.nothing”是第一个孩子。 (2认同)
  • `.child:nth-child(2)` 选择其父元素的第二个子元素,而不是第一个 `.child` 元素。虽然它可能在这种特定情况下起作用,但它并不是实际问题的解决方案。 (2认同)