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

标签 css css-selectors

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

.container div {
    display: inline-block;
    margin: 5px;
}

.container div:nth-child(n+4):not(:nth-child(4):last-child) {
    background: red;
}
<div class="container">
<div>1</div>
<div>2</div>
</div>
<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
</div>

jsfiddle: https://jsfiddle.net/e9fgdeu1/

最佳答案

我认为只有一个选择器是不够的。但是可以使用以下选择器完成:

.container div:nth-child(n + 5),
.container div:nth-child(4):not(:last-child) {
  background: red;
}

.container div {
  display: inline-block;
  margin: 5px;
}

.container div:nth-child(n + 5),
.container div:nth-child(4):not(:last-child) {
  background: red;
}
<div class="container">
  <div>1</div>
  <div>2</div>
</div>
<div class="container">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>
<div class="container">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
</div>
<div class="container">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
<div class="container">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
</div>
<div class="container">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
</div>

关于css - 选择第 n 个元素,除非元素位于特定位置并且是 CSS 的最后一个子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41237291/

相关文章:

javascript - 使用 Javascript 设置交替行的样式

jQuery prevUntil() 包括开始选择器和结束选择器

html - 如何使用 CSS 选择文本节点

html - 匹配文本内容并应用样式

c++ - 使用属性选择器的整个应用程序的QT StyleSheet主题

javascript - 显示内部 html 需要覆盖/灯箱

html - 使用 CSS 将多个图像 (.gif) 用作图标,而不是背景,插入到不同的行中?

html - 在表格单元格内居中 div 但文本左对齐

html - 如何设置混合宽度容器(px 和 %)?

CSS :not() selector not working when targeting nested hierarchy