Css 选择除最后一个以外的所有类别

Css 选择除最后一个以外的所有类别,css,css-selectors,Css,Css Selectors,我有一系列的div,我想用enable类选择所有p标记,除了每个div中的最后一个,以便在css中应用特定样式。内容是动态生成的,可能因用户而异。 在下面的示例中,我想将此样式应用于第一个div中的前两个p,而在另一个div中则没有。我相信这很容易,但我没有找到任何解决办法 <div> <p class="enable"></p> <p class="enable"></p> <p class="enabl

我有一系列的
div
,我想用
enable
类选择所有
p
标记,除了每个div中的最后一个,以便在css中应用特定样式。内容是动态生成的,可能因用户而异。

在下面的示例中,我想将此样式应用于第一个div中的前两个
p
,而在另一个div中则没有。我相信这很容易,但我没有找到任何解决办法

<div>
    <p class="enable"></p>
    <p class="enable"></p>
    <p class="enable"></p>
    <p class="disable"></p>
</div>
<div>
    <p class="enable"></p>
    <p class="disable"></p>
    <p class="disable"></p>
    <p class="disable"></p>
</div>


谢谢您的帮助。

如果
p
元素被限制为每个
div
四个元素,您可以使用
n个子元素
伪选择器

p.enable:nth-child(-n+2)
{
    background: #0f0;
}

p.disable
{
    background: #eee;
}

我为您提供了一个Javascript解决方案:

var divs = document.getElementsByTagName("div"), paras, i, j;

for(i = 0; i < divs.length; i++) {
    paras = divs[i].getElementsByTagName("p");
    for(j = 0; j < paras.length-1; j++) {
        if(paras[j+1].className === "disable")
            break;
        // apply your custom code here
        paras[j].style.background = "#FF0000";
    }
}
var divs=document.getElementsByTagName(“div”),第i、j段;
对于(i=0;i

中检查此解决方案此问题在标记为jquery或javascript@defau1t:我知道,但我看到这一点已经很晚了,我不想让我的答案白白浪费。无论如何,我认为单用css是不可能的。第二个div中的第一个p标记不应该突出显示,我认为这是符合要求的。那么你对CSS的要求太高了,将不得不求助于某种混乱的javascript。祝你好运。这不是我的问题。我只是看到了所要求的和提供的内容。CSS中没有解决方案。@Axanagor将p.disable和最后一个p.enable具有相同的样式?