具有类的孩子的第一个实例的CSS选择器? [复制]

Posted

技术标签:

【中文标题】具有类的孩子的第一个实例的CSS选择器? [复制]【英文标题】:CSS selector for first instance of child with class? [duplicate] 【发布时间】:2013-08-24 03:19:52 【问题描述】:

是否有一个 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>

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

【问题讨论】:

没有 CSS 选择器,但有 jQuery 选择器。 你试过什么?你有没有看过api.jquery.com/category/selectors,它列出了jQuery 可以理解的所有选择器?就个人而言,我只会使用$('.child').first() 不,没有使用 CSS 的选择器。最接近的是 :first-of-type 选择器,但它只匹配标签名称,而不是类 Doh - 真不幸。感谢您的回复 如果您正在寻找 CSS 解决方案,那么这是一个副本。您无法使用单个选择器执行此操作,但您可以使用一种解决方法。查看链接。 【参考方案1】:

您可以使用 ":nth-child" css 选择器。

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

CSS:

.child:nth-child(2)  color:red; 

【讨论】:

不起作用:jsfiddle.net/fkling/Pex2R。原因::first-child 选择元素当且仅当它是其父元素的第一个子元素。在 OP 的示例中,div.nothing 是第一个孩子。 是的,对我也不起作用 我更新了答案。就像前面提到的:first-child 仅适用于其父级的第一个子级。看看:nth-child 是否适合你。 .child:nth-child(2) 选择其父元素的第二个子元素,而不是第一个 .child 元素。虽然它可能适用于这种特定情况,但它不是实际问题的解决方案。 :nth-of-type 只会选择同类型元素的第 n 个。在给出的示例中,第一个孩子是一个 div 元素,您不能使用:nth-of-type 来选择第一个。【参考方案2】:

您可以使用general sibling combinator、~ 设置.child 的样式并为后续.child 兄弟姐妹恢复样式:

.child 
  color: #ff0000;

.child ~ .child 
  color: inherit;
<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>

【讨论】:

或者更好地将颜色重置为继承,它将恢复为默认值!

以上是关于具有类的孩子的第一个实例的CSS选择器? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

针对相同的孩子,但只针对某些不同的父母——CSS和jQuery选择器样式

CSS选择具有特定类的第一个元素

CSS3选择器:类名的第一个类型?

选择给定班级的第一个孩子,如何? [复制]

为自己和孩子做出反应样式的组件选择器?

CSS 是不是有一个选择器用于在多个类中进行选择? [复制]