选择第n个元素,除非元素位于特定位置,并且是CSS的最后一个子元素

选择第n个元素,除非元素位于特定位置,并且是CSS的最后一个子元素,css,css-selectors,Css,Css Selectors,我想用一个选择器选择所有元素,从第四个开始。但是我不想选择第四个,如果它是最后一个元素 .container div{ 显示:内联块; 保证金:5px; } .container div:n子级(n+4):非(:n子级(4):最后一个子级){ 背景:红色; } 1. 2. 1. 2. 3. 1. 2. 3. 4. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 6. 1. 2. 3. 4. 5. 6. 7. .container div{ 显示:内联块; 保证金:5px; }

我想用一个选择器选择所有元素,从第四个开始。但是我不想选择第四个,如果它是最后一个元素

.container div{
显示:内联块;
保证金:5px;
}
.container div:n子级(n+4):非(:n子级(4):最后一个子级){
背景:红色;
}

1.
2.
1.
2.
3.
1.
2.
3.
4.
1.
2.
3.
4.
5.
1.
2.
3.
4.
5.
6.
1.
2.
3.
4.
5.
6.
7.
.container div{
显示:内联块;
保证金:5px;
}
.容器分区:第n个子项(n+4){
背景:红色;
}
.容器分区:第n个子项(4):最后一个子项{
背景:无;
}

1.
2.
1.
2.
3.
1.
2.
3.
4.
1.
2.
3.
4.
5.
1.
2.
3.
4.
5.
6.
1.
2.
3.
4.
5.
6.
7.

我认为只有一个选择器是不够的。但是,可以使用以下选择器执行此操作:

.container div:nth-child(n + 5),
.container div:nth-child(4):not(:last-child) {
  background: red;
}
.container div{
显示:内联块;
保证金:5px;
}
.集装箱分区:第n个子(n+5),
.container div:n子级(4):非(:最后一个子级){
背景:红色;
}

1.
2.
1.
2.
3.
1.
2.
3.
4.
1.
2.
3.
4.
5.
1.
2.
3.
4.
5.
6.
1.
2.
3.
4.
5.
6.
7.

thx,但这也可能是一个多功能选择器吗?我不想在第二个选择器中重置规则。我认为在一行中不可能重置规则。您可以使用:not删除最后一个子项,但至少需要两个步骤:n最后一个子项(1)等同于:last child且完全有效。这不是一个输入错误。一旦浏览器支持级别4:not(),您所拥有的将起作用。事实上,您的代码片段将在Safari 9+中显示正确的结果。