我有一个由div列表组成的两列表格,我想要target all the divs on the right列.使用:nth-of-type(Even)在我的例子中不起作用,因为我有一些跨越target all the divs on the right%宽度的div,因此它们改变了级联顺序.预期效果如下图所示:

enter image description here

<section class="container">
  <div>#1</div>
  <div>#2</div>
  <div class="fullWidth">#3</div>
  <div>#4</div>
  <div>#5</div>
  <div>#6</div>
  <div>#7</div>
  <div class="fullWidth">#8</div>
  <div>#9</div>
  <div>#10</div>
</section>
.container {
  width: 300px;
  height: 400px;
  margin: 20px;
  outline: 2px solid lightgrey;
  display: flex;
  flex-wrap: wrap;
}
.container > div {
  flex: 1 1 50%;
  outline: 1px solid bisque;
  background-color: #c5c8d5;
}
div.fullWidth {
  width:100%;
  flex-basis: 100%;
  background-color: lightsalmon
}

我try 了相邻的和sibling 的 Select 器,加上::Not()、::Last-of-type和::First-of-type的组合

事先感谢您的帮助

推荐答案

您可以try 新的nth-child() Select 器,方法是从所选内容中排除全宽项目

.container {
  width: 300px;
  height: 400px;
  margin: 20px;
  outline: 2px solid lightgrey;
  display: flex;
  flex-wrap: wrap;
}
.container > div {
  flex: 1 1 50%;
  outline: 1px solid bisque;
  background-color: #c5c8d5;
}
div.fullWidth {
  width:100%;
  flex-basis: 100%;
  background-color: lightsalmon
}

.container > div:nth-child(even of :not(.fullWidth)) {
  background: red;
}
<section class="container">
  <div>#1</div>
  <div>#2</div>
  <div class="fullWidth">#3</div>
  <div>#4</div>
  <div>#5</div>
  <div>#6</div>
  <div>#7</div>
  <div class="fullWidth">#8</div>
  <div>#9</div>
  <div>#10</div>
</section>

Css相关问答推荐

在菜单中最后一项之后排除MUI分隔符

Vue3日期 Select 器:禁用向左和向右箭头

Css扩展搜索栏,如何添加图标结束?

如何为多个背景和棋盘设置不同的大小

在AND设计令牌上使用不同的主题

如何使TWebPanel具有圆角?

在网格中整齐地对齐项目

我怎样才能准确地获得虚构文本内容宽度的边距?

Mat table - 保留第一列和复选框

如何在流线型多页面应用程序中在表情符号和页面名称之间留出一些空白

用于替代渲染的 CSS 嵌套

Angular Datepicker - 更改日期范围 Select 样式

全部:初始与使用 CSS 重置

如何倾斜元素但保持文本正常(未倾斜)

媒体查询以错误的宽度触发

边界半径应该剪辑内容吗?

什么是 DOM 回流?

字体上的 Font-Awesome 错误 404

在无序列表中的项目之后添加管道分隔符,除非该项目是最后一行

如何在 CSS 中给出背景图像路径?