2014-01-22 169 views
0

CSS选择比方说,我的HTML看起来像这样:的第一个子元素

<div class="container"> 
    <... some html here ...> 
</div> 

我想要得到的.container的第一直接子。

我可以做.container > div:first-child但这是假设它是div并非总是如此。

+6

'.container>:没有'div'部分的first-child'。 – Sampson

回答

6

使用:first-child伪类没有标记名:

.container > :first-child 

这会抢那是即时的第一个孩子,不论其标记名的任何元素。这与我们使用其他伪类(例如:hover)的方式类似,后者仅针对任何元素,而a:hover仅针对锚的悬停状态。

+0

我可以问你一个简单的附加问题吗?在小提琴中使用你的代码[像这样](http://jsfiddle.net/xkX95/1/),我没有看到任何CSS反映。但是,[这里](http://jsfiddle.net/xkX95/2/)(注意省略**> **),我这样做。对不起,标签,我只是好奇。 –

+0

':第一个孩子'没有针对textNodes。你需要有容器http://jsfiddle.net/jonathansampson/xkX95/5/内的元素 – Sampson

+1

干杯! [工作就像你说的: - )](http://jsfiddle.net/xkX95/6/) –

0

不使用元素本身,但一个类是一个更好的解决方案和方式更多语义由于很多原因

,并给予类元素的孩子,不仅是这样的容器:

HTML:

<article class="container"> 
    <p class="blah">First paragraph...</p> 
    <p class="blah">Lorem ipsum...</p> 
    <p class="blah">Dolor sit amet...</p> 
</article> 

CSS:

.blah { 
    background: red; 
    color: white; 
} 

.blah:first-child { 
    background: #000; 
} 

你可以看到它在行动这里:http://jsfiddle.net/Roobyx/ygP4B/

+1

_(乔纳森桑普森的答案不会工作..)_你确定吗? [** fiddle **](http://jsfiddle.net/xkX95/8/) –

+0

真的没有什么理由给它一个类,当你可以像这样定位它时,'.container p {}'。 http://jsfiddle.net/ygP4B/1/ –

+0

采取点! :) – MRadev

相关问题