
了解 css 布局:灵活处理奇偶行元素
在 css 布局中,有时我们会遇到处理奇偶行元素的难题。比如,当你有若干固定宽度的元素需要排成两列时,要求双数时每行放置 2 个元素,单数时最后一个元素独占一行。如何实现这个布局呢?
解决方法
我们可以使用 :last-child 和 :nth-child 选择器来解决这个问题。last-child 选择器可以选中容器中的最后一个元素,而 :nth-child 可以选中满足特定规则的元素。通过组合这两个选择器,我们可以选中最后一个元素并且非 2n 的元素:
立即学习“前端免费学习笔记(深入)”;
.list .item:last-child:not(:nth-child(2n)) {
/* 选择最后一个元素并且非 2n 的,设置样式 */
}举例说明
下面是一个示例代码,展示了如何使用上述方法实现需求:
.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;
}当元素个数为偶数时,元素将按两列排列:
[图片展示双数情况下的布局]
当元素个数为奇数时,最后一个元素将独占一行:
[图片展示单数情况下的布局]










