CSS 布局:如何使奇偶行元素在两列中灵活排布?

css 布局:如何使奇偶行元素在两列中灵活排布?

了解 css 布局:灵活处理奇偶行元素

css 布局中,有时我们会遇到处理奇偶行元素的难题。比如,当你有若干固定宽度的元素需要排成两列时,要求双数时每行放置 2 个元素,单数时最后一个元素独占一行。如何实现这个布局呢?

解决方法

我们可以使用 :last-child 和 :nth-child 选择器来解决这个问题。last-child 选择器可以选中容器中的最后一个元素,而 :nth-child 可以选中满足特定规则的元素。通过组合这两个选择器,我们可以选中最后一个元素并且非 2n 的元素:

.list .item:last-child:not(:nth-child(2n)) {
  /* 选择最后一个元素并且非 2n 的,设置样式 */
}

举例说明

下面是一个示例代码,展示了如何使用上述方法实现需求:

<div class="list">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>
.list {
  display: flex;
  flex-wrap: wrap;
  width: 1000px;
}

.item {
  width: 200px;
  height: 200px;
  margin: 10px;
  background-color: red;
}

.list .item:last-child:not(:nth-child(2n)) {
  margin-top: 10px;
}

当元素个数为偶数时,元素将按两列排列:

[图片展示双数情况下的布局]

当元素个数为奇数时,最后一个元素将独占一行:

[图片展示单数情况下的布局]

以上就是CSS 布局:如何使奇偶行元素在两列中灵活排布?的详细内容,更多请关注其它相关文章!