如何为除最后3个元素外的所有元素设置CSS margin-bottom:30px?
CSS选择并设置除最后3个元素外的样式
针对你提出的两个问题,直接给出可行的CSS解决方案:
1. 选择除最后3个元素外的所有元素
有两种简洁的CSS选择器可以实现:
- 排除法:用
:not()排除最后3个元素
选择器:.container .card:not(:nth-last-child(-n+3)) - 直接匹配法:选中倒数第4个及之前的所有元素
选择器:.container .card:nth-last-child(n+4)
选择器说明
:nth-last-child(-n+3)会选中容器里的最后3个.card元素,搭配:not()就能排除它们,得到前面所有元素;:nth-last-child(n+4)中n从0开始计算,当n=0时匹配倒数第4个元素,n=1时匹配倒数第5个,以此类推,刚好覆盖除最后3个外的所有元素。
2. 应用margin-bottom样式
将选择器与样式结合,完整代码如下:
/* 方案一:排除最后3个元素 */ .container .card:not(:nth-last-child(-n+3)) { margin-bottom: 30px; } /* 方案二:直接匹配目标元素,效果完全相同 */ .container .card:nth-last-child(n+4) { margin-bottom: 30px; }
这两种方案都适配任意数量的.card元素——如果容器里的.card数量少于3个,选择器不会选中任何元素,不会产生错误样式。
内容的提问来源于stack exchange,提问作者Bhesh Sejawal
相关产品推荐
相关产品推荐

