css - 在 4 列网格中选择第二个和第三个元素

标签 css

我希望选择网格中的中间元素。我不是特别擅长 nth 选择器,所以我在这里不知所措。选择元素的最佳方法是什么:2+3、6+7、10+11、14+15。

*,
*:before,
*:after {
  box-sizing: border-box;
  font-family: Helvetica;
}

.flex-container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  border: 4px solid #000;
  width: 400px;
}

.flex-child {
  flex-grow: 0;
	flex-basis: 25%;
  background: tomato;
  padding: 10px;
  border: 5px solid red;
  color: white;
  font-weight: bold;
  font-size: 2em;
  text-align: center;
}
<div class="flex-container">
  <div class="flex-child">1</div>
  <div class="flex-child">2</div>
  <div class="flex-child">3</div>
  <div class="flex-child">4</div>
  <div class="flex-child">5</div>
  <div class="flex-child">6</div>
  <div class="flex-child">7</div>
  <div class="flex-child">8</div>
  <div class="flex-child">9</div>
  <div class="flex-child">10</div>
  <div class="flex-child">11</div>
  <div class="flex-child">12</div>
  <div class="flex-child">13</div>
  <div class="flex-child">14</div>
  <div class="flex-child">15</div>
  <div class="flex-child">16</div>
  <div class="flex-child">17</div>
  <div class="flex-child">18</div>
  <div class="flex-child">19</div>
  <div class="flex-child">20</div>
</div>

最佳答案

*,
*:before,
*:after {
  box-sizing: border-box;
  font-family: Helvetica;
}

.flex-container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  border: 4px solid #000;
  width: 400px;
}

.flex-child {
  flex-grow: 0;
	flex-basis: 25%;
  background: tomato;
  padding: 10px;
  border: 5px solid red;
  color: white;
  font-weight: bold;
  font-size: 2em;
  text-align: center;
}

.flex-child:nth-child(4n+2),.flex-child:nth-child(4n+3) {
   background: lightgreen;
}
<div class="flex-container">
  <div class="flex-child">1</div>
  <div class="flex-child">2</div>
  <div class="flex-child">3</div>
  <div class="flex-child">4</div>
  <div class="flex-child">5</div>
  <div class="flex-child">6</div>
  <div class="flex-child">7</div>
  <div class="flex-child">8</div>
  <div class="flex-child">9</div>
  <div class="flex-child">10</div>
  <div class="flex-child">11</div>
  <div class="flex-child">12</div>
  <div class="flex-child">13</div>
  <div class="flex-child">14</div>
  <div class="flex-child">15</div>
  <div class="flex-child">16</div>
  <div class="flex-child">17</div>
  <div class="flex-child">18</div>
  <div class="flex-child">19</div>
  <div class="flex-child">20</div>
</div>

关于css - 在 4 列网格中选择第二个和第三个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42701634/

相关文章:

css - 宽度超过 10 万像素的背景图像

javascript - CSS 颜色叠加悬停

css - 我可以防止样式规则被继承吗?

html - 使用背景 : url() 的 onerror 事件

php - CSS 在 CodeIgniter 中呈现为 HTML

css - Angular2 - 为什么不会 :host grow vertically with its content in Safari?

css - Shiny 的仪表板 : Sticky Footer in dashboardSidebar

jquery - 向正文 :after when sidebar is clicked and run animation 上的背景 (rgba) 添加叠加层

javascript - 设置后更改 Owl Carousel 2 选项?

jquery - 如何使 jQuery css 影响即将到来的元素