如何使用伪类来选择除第一个和最后一个之外的所有子项?

时间:2012-01-30 17:11:10

标签: css css-selectors pseudo-class

在CSS中,对于下面显示的示例,如何将样式应用于所有段落,第一段和最后一段除外?

<div class="entry">
    <p>...</p>
    <p>...</p>
    <p>...</p>
    <p>...</p>
    <p>...</p>
</div>

我已尝试以下方法排除第一段,但这不起作用:

div.entry p:nth-child(n+1) {
    /* ... */
}

我也尝试了nth-of-type()not(),但无法按照我的想法让它们工作。

编辑:我决定将我要应用该样式的所有<p>包装在<div>中。我接受了bozdoz的答案,因为它最接近于解决原始问题(即使它只解决了一半)。

3 个答案:

答案 0 :(得分:10)

更新回答:

同时使用:not(:first-child):not(:last-child)

div.entry p:not(:first-child):not(:last-child)

查看更新的JSFiddle

答案 1 :(得分:2)

我知道我在比赛中迟到了,但我想我会为未来的观众添加这个。

div.entry p:not(:first-child):not(:last-child)

答案 2 :(得分:0)

我偶然发现了可能回答你问题的事情:

  

代表XHTML身体所有h2儿童,除了第一个和   最后,可以使用以下选择器:

     

body > h2:nth-of-type(n+2):nth-last-of-type(n+2)

W3C - CSS3-Selectors