当它在div中时,如何选择第一个子节点

时间:2014-04-16 16:44:21

标签: css css-selectors

这是我的代码,我将选择第一个<span>

的孩子
<div class="textTextmenu">
      <img src="pic/postimage.png"/>
        <span>
            I need to select this span
        </span>
        <span>
            span 2
       </span>
   </div>

我想用第一个孩子执行此操作,但我不知道如何使用first-child

像这样:

.textTextmenu span:first-child{
 /*
    writing code here
 */
  color:red;
}

8 个答案:

答案 0 :(得分:3)

在您的示例中,.textTextmenu span:first-child将无法匹配任何内容。 .textTextmenu的{​​{3}}是img

您可能实际上想要查看first-childfirst-of-type,例如

.textTextmenu span:first-of-type {}

.textTextmenu :nth-child(2) {}

在这个特定示例中可以使用的其他方法是nth-child+,如下所示:

.textTextmenu span {
    /* Style the first span */
}
.textTextmenu span + span {
    /* Style the next span */
}

.textTextmenu span {
    /* Style the first span */
}
.textTextmenu span:last-child {
    /* Style the next span */
}

答案 1 :(得分:2)

这一切都是为了让你明白

1)    .textTextmenu span:first-of-type { color:red } 
2)    .textTextmenu :nth-child(1){border:1px solid red;}
3)    .textTextmenu span:nth-child(2){color:red;}

DEMO 1

DEMO 2

DEMO 3

答案 2 :(得分:2)

我对你想要的东西感到困惑但是......

.textTextmenu img:first-child{
  border:2px solid red;
 /*How to select First child? / this way is wronge and image is not selected*/
}

正确?

答案 3 :(得分:2)

.textTextmenu img:first-child{
  border:2px solid red;
}

这将在div

中选择第一个img标签

答案 4 :(得分:1)

这是好事吗?它在textTextmenu

中选择图像后的每个跨度
.textTextmenu    img + span {} 

答案 5 :(得分:1)

您无法使用first-of-type的任何理由?

.textTextmenu span:first-of-type {
  ...styles go here... 

}

注意:与许多CSS伪选择器一样,first-of-type只是nth-of-type(1)的别名,因为first-childnth-child(1)的别名

答案 6 :(得分:1)

选择图像,而不是:

.textTextmenu span:first-child{}

.textTextmenu img:first-child{}

以下是其中的一个小提琴:http://jsfiddle.net/763K9/

答案 7 :(得分:1)

.textTextmenu img + span{
  border:2px solid red;
 /*How to select First child? / this way is wronge and image is not selected*/
}

请参阅演示http://jsfiddle.net/nUwDb/