2011-05-01 42 views
3

我试图对id=div1的第一个div申请一些css。当我做.alldivs:first时,它不起作用。我究竟做错了什么?以这种方式选择第一个div有什么问题

<div class="alldivs"> 
    <div class="onediv" id="div1"> 
    </div> 
    <div class="onediv" id="div2"> 
    </div> 
    <div class="onediv" id="div3"> 
    </div> 
</div> 
+0

有一些暧昧的这样一个问题:你是不是想选择ID为“div1”或第一个子div的div? *现在*,使用此代码,它们是相同的,但从概念上说它们不是。如果您重新排列这些块,那么接受的答案将最终应用于不同的div。 – 2011-05-01 09:48:29

回答

8

如果你想选择第一个孩子:.alldivs>:first-child应该做的伎俩。

编辑: 苏编辑我的帖子说.alldivs:first-child。这实际上是不正确的,我已经恢复到原来的状态。语法:first-child选择其父项的第一个子项,该子项与紧邻冒号前面的选择器相匹配。因此,p:first-child将匹配其父项的第一个子项的任何段落。因此,.alldivs>匹配.alldivs:first-child的任何子项都与第一个匹配。编辑其他帖子之前请确保你是正确的。

2

你想要的是:

.alldivs div:first-child 
0

.alldivs不是一个选择,如果你想选择在DOM中的第一个div这将是div:first-child或者,如果你想选择与类onediv第一个div这将是.onediv:first-child

我希望这有助于你

1

如果div有一个id已经仅仅通过ID选择它。

#div1 { 
    /* yes that's all you need */ 
} 

有作为具有相同ID的两个元素没有这样的事情(如果你关注的规则),所以如果它是第一或第三十一次也没关系。

如果你正在寻找的第一个div无论什么ID,使用.alldivs :first-child

这里做进一步的了解一些参考:

http://www.w3.org/TR/CSS2/selector.html#first-child